VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
@@ -9,6 +9,7 @@
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.MouldSearch;
using VueWebCoreApi.Tools;
namespace VueWebCoreApi.DLL.DAL
@@ -72,19 +73,20 @@
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.status,A.usestatus,A.code,A.name,A.spec,A.warehousecode,S.name as warehousename,
                            A.surp_life,'0' as serlife,A.resi_life,(case when isnull(M.mouldcode,'')='' then 'N' else 'Y' end) as is_part,
                            STUFF((SELECT ',' + B.partcode
                            from TMouldInfoPart B
                            where A.code = B.mouldcode
                            FOR XML PATH('')), 1, 1, '') AS partcode,
                            A.lm_user as usercode,U.username,A.lm_date
                            from TMouldInfo A
                            left join TSecStck S on A.warehousecode=S.code
                            left join (
                            select distinct mouldcode from TMouldInfoPart
                            )  M on A.code=M.mouldcode
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + search;
                           A.surp_life,(select isnull(sum(usecount_life),0)   from TMould_UpDownReord R where R.mould_code=A.code) as serlife,
                           A.resi_life,(case when isnull(M.mouldcode,'')='' then 'N' else 'Y' end) as is_part,
                           STUFF((SELECT ',' + B.partcode
                           from TMouldInfoPart B
                           where A.code = B.mouldcode
                           FOR XML PATH('')), 1, 1, '') AS partcode,
                           A.lm_user as usercode,U.username,A.lm_date
                           from TMouldInfo A
                           left join TSecStck S on A.warehousecode=S.code
                           left join (
                           select distinct mouldcode from TMouldInfoPart
                           )  M on A.code=M.mouldcode
                           left join TUser U on A.lm_user=U.usercode
                           where 1=1 " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -103,7 +105,7 @@
        #endregion
        #region[模具清单新增编辑]
        public static ToMessage AddUpdateMouldManger(string mouldcode, string mouldname, string mouldspec, string warehousecode, string surplife, string resilife, string status, string mouldpart, string opertype, User us)
        public static ToMessage AddUpdateMouldManger(string mouldcode, string mouldname, string mouldspec, string surplife, string resilife, string status, string mouldpart, string opertype, User us)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
@@ -113,8 +115,8 @@
                if (opertype == "Add")
                {
                    //写入模具清单表                                     
                    sql = @"insert into TMouldInfo(code,name,spec,status,usestatus,warehousecode,surp_life,resi_life,lm_user,lm_date)
                               values(@code,@name,@spec,@status,@usestatus,@warehousecode,@surp_life,@resi_life,@lm_user,@lm_date)";
                    sql = @"insert into TMouldInfo(code,name,spec,status,surp_life,resi_life,lm_user,lm_date)
                               values(@code,@name,@spec,@status,@surp_life,@resi_life,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
@@ -124,8 +126,6 @@
                            name = mouldname,
                            spec = mouldspec,
                            status = status,
                            usestatus = "0",//使用状态:在库/出库/上机/下机/维修/外借(0,1,2,3,4,5)
                            warehousecode = warehousecode,
                            surp_life = surplife,
                            resi_life = resilife,
                            lm_user = us.usercode,
@@ -171,7 +171,7 @@
                if (opertype == "Update")
                {
                    //修改模具清单表
                    sql = @"update TMouldInfo set name=@name,spec=@spec,status=@status,warehousecode=@warehousecode,
                    sql = @"update TMouldInfo set name=@name,spec=@spec,status=@status,
                            surp_life=@surp_life,resi_life=@resi_life,lm_user=@lm_user,lm_date=@lm_date where code=@code";
                    list.Add(new
                    {
@@ -182,7 +182,6 @@
                            name = mouldname,
                            spec = mouldspec,
                            status = status,
                            warehousecode = warehousecode,
                            surp_life = surplife,
                            resi_life = resilife,
                            lm_user = us.usercode,
@@ -1814,7 +1813,7 @@
                //写入保养记录主表
                sql = @"insert into TMouldmaint_Proc_Main(bywo,mould_code,mouldmaint_code,maint_result,maint_user,maint_date) 
                        values(@bywo,@mould_code,@mouldmaint_code,@maint_result,@lm_user,@lm_date)";
                        values(@bywo,@mould_code,@mouldmaint_code,@maint_result,@maint_user,@maint_date)";
                list.Add(new
                {
                    str = sql,
@@ -1823,15 +1822,15 @@
                        bywo = bywo,
                        mould_code = json.code,
                        mouldmaint_code = json.standcode,
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString(),
                        maint_user = us.usercode,
                        maint_date = DateTime.Now.ToString(),
                        maint_result = json.result
                    }
                });
                //循环写入保养记录子表
                for (int i = 0; i < json.children.Count; i++)
                {
                    sql = @"insert into TEqpmaint_Proc_Deta(seq,m_id,mouldmaideta_code,result,maint_value,lm_user,lm_date)
                    sql = @"insert into TMouldmaint_Proc_Deta(seq,m_id,mouldmaideta_code,result,maint_value,lm_user,lm_date)
                            values(@seq,CONVERT(INT,IDENT_CURRENT('TMouldmaint_Proc_Main')),@mouldmaideta_code,@result,@maint_value,@lm_user,@lm_date)";
                    list.Add(new
                    {
@@ -1866,6 +1865,136 @@
                    mes.count = 0;
                    mes.Message = "保养失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具信息查询,扫描模具二维码]
        public static ToMessage ScanMouldQrCodeMessageData(string mouldcode)
        {
            string sql = "", search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += " where code=@mouldcode ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                //查找模具信息
                sql = @"select code,name,spec
                        from TMouldInfo"+search;
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.Message = "查询成功!";
                    mes.data = dt;
                    return mes;
                }
                else
                {
                    mes.code = "300";
                    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 ScanMouldQrCodeMessageSubData(string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<MouldMessage> list = new List<MouldMessage>();
            try
            {
                //查找模具信息
                MouldMessage moud = new MouldMessage();
                sql = @"select code,name,spec,surp_life,resi_life,status,usestatus
                        from TMouldInfo where code=@mouldcode";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    moud.mouldcode = dt.Rows[0]["code"].ToString();
                    moud.mouldname = dt.Rows[0]["name"].ToString();
                    moud.mouldspec = dt.Rows[0]["spec"].ToString();
                    moud.surp_life = dt.Rows[0]["surp_life"].ToString();
                    moud.resi_life = dt.Rows[0]["resi_life"].ToString();
                    moud.status = dt.Rows[0]["status"].ToString();
                    moud.usestatus = dt.Rows[0]["usestatus"].ToString();
                    //查询最近一次点检记录
                    sql = @"select top 1 chk_date  from TMouldchk_Proc_Main where mould_code=@mouldcode order by chk_date desc";
                    dynamicParams.Add("@mouldcode", mouldcode);
                    var dt0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt0.Rows.Count > 0)
                    {
                        moud.checkdate = dt0.Rows[0]["chk_date"].ToString();
                    }
                    //查询最近一次保养记录
                    sql = @"select top 1 maint_date  from TMouldmaint_Proc_Main where mould_code=@mouldcode order by maint_date desc";
                    dynamicParams.Add("@mouldcode", mouldcode);
                    var dt1 = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt1.Rows.Count > 0)
                    {
                        moud.maintdate = dt1.Rows[0]["maint_date"].ToString();
                    }
                    //查询关联产品
                    moud.children = new List<RelatedProduct>();
                    sql = @"select P.partcode,M.partname,M.partspec
                        from TMouldInfoPart P
                        left join TMateriel_Info M on P.partcode=M.partcode
                        where P.mouldcode=@mouldcode";
                    dynamicParams.Add("@mouldcode", mouldcode);
                    var dt2 = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt2.Rows.Count > 0)
                    {
                        for (int i = 0; i < dt2.Rows.Count; i++)
                        {
                            RelatedProduct mousb = new RelatedProduct();
                            mousb.partcode = dt2.Rows[i]["partcode"].ToString();
                            mousb.partname = dt2.Rows[i]["partname"].ToString();
                            mousb.partspec = dt2.Rows[i]["partspec"].ToString();
                            moud.children.Add(mousb);
                        }
                    }
                    list.Add(moud);
                    mes.code = "200";
                    mes.Message = "查询成功!";
                    mes.data = list;
                    return mes;
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "暂无数据或无效的模具二维码信息!";
                    mes.data = null;
                    return mes;
                }
            }
            catch (Exception e)
@@ -1976,8 +2105,8 @@
        }
        #endregion
        #region[设备维修申请,提交保存]
        public static ToMessage MaintainScanMouldApplySave(string menucode, string mouldcode, string faultsourcecode, string faultdescr, User us, List<IFormFile> files)
        #region[模具维修申请,提交保存]
        public static ToMessage MaintainScanMouldApplySave(string menucode, string mouldcode, string faultsourcecode, string faultdescr, User us, IFormFileCollection files)
        {
            var sql = "";
            string sqwo = "", numvalue = "";
@@ -2001,16 +2130,20 @@
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        IFormFile file = files[i];
                        string imgName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名
                        // 生成文件名
                        var fileName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
                        //var fileName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
                        // 拼接文件保存路径
                        var filePath = Path.Combine("wwwroot/MouldRecordImage", fileName);
                        //var filePath = Path.Combine("wwwroot/MouldRecordImage", fileName);
                        // 保存文件
                        // 保存文件var stream = new FileStream(filePath, FileMode.Create)
                        using (var stream = new FileStream(filePath, FileMode.Create))
                        {
                            files[i].CopyToAsync(stream);
                            files[i].CopyTo(stream);
                        }
                        //循环写维修记录对应图片表
                        sql = @"insert into  TMould_RepairImage(source_wo,wo_type,img1url) 
@@ -2048,6 +2181,9 @@
                //回写模具清单,模具状态(故障)、使用状态(待维修)
                sql = @"update TMouldInfo set status='N',usestatus='4'  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                //更新单据流水号
                List<object> list1 = SeachEncodeJob.StrEncodingUpdate(menucode, numvalue);
                list.Add(list1[0]);
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
@@ -2085,18 +2221,19 @@
            var dynamicParams = new DynamicParameters();
            try
            {
                if (mouldcode == "" || mouldcode == null)
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and B.code=@mouldcode ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                //获取模具维修列表已申请未维修的数据
                sql = @"select A.docu_code,B.code as mouldcode,B.name as mouldname,B.spec as mouldspec,B.surp_life,B.resi_life,
                        A.request_person,A.request_date,
                        A.request_person,U.username as request_name,A.request_date,
                        (case when A.source='A' then '点检' when A.source='B' then '保养' when A.source='D' then '手工' end) as source,
                        A.failure_descript   
                        from TMould_RepairRequest A
                        inner  join TMouldInfo B on A.mould_code=B.code
                        left   join TUser U on A.request_person=U.usercode
                        where  A.status='REPA' " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
@@ -2124,7 +2261,7 @@
        #endregion
        #region[模具维修提交]
        public static ToMessage RepairScanMouldSave(string menucode, string docu_code, string mouldcode, string faultdescr, string is_stoprepair, string repaircontent, User us, List<IFormFile> files)
        public static ToMessage RepairScanMouldSave(string menucode, string docu_code, string mouldcode, string faultdescr, string is_stoprepair, string repaircontent, User us, IFormFileCollection files)
        {
            var sql = "";
            string wxwo = "", numvalue = "";
@@ -2148,16 +2285,20 @@
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        IFormFile file = files[i];
                        string imgName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名
                        // 生成文件名
                        var fileName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
                        //var fileName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
                        // 拼接文件保存路径
                        var filePath = Path.Combine("wwwroot/MouldRecordImage", fileName);
                        //var filePath = Path.Combine("wwwroot/MouldRecordImage", fileName);
                        // 保存文件
                        // 保存文件var stream = new FileStream(filePath, FileMode.Create)
                        using (var stream = new FileStream(filePath, FileMode.Create))
                        {
                            files[i].CopyToAsync(stream);
                            files[i].CopyTo(stream);
                        }
                        //循环写维修记录对应图片表
                        sql = @"insert into  TMould_RepairImage(source_wo,wo_type,img1url) 
@@ -2200,6 +2341,9 @@
                //回写模具清单,使用状态(已维修)
                sql = @"update TMouldInfo set usestatus='5'  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                //更新单据流水号
                List<object> list1 = SeachEncodeJob.StrEncodingUpdate(menucode, numvalue);
                list.Add(list1[0]);
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
@@ -2244,10 +2388,11 @@
                }
                //获取模具维修列表已维修的数据
                sql = @"select A.repair_code,B.code as mouldcode,B.name as mouldname,B.spec as mouldspec,B.surp_life,B.resi_life,
                        A.repair_person,A.repair_date,A.is_shutdown,
                        A.repair_person,U.username as repair_name,A.repair_date,A.is_shutdown,
                        A.failure_descript   
                        from TMould_Repair A
                        inner  join TMouldInfo B on A.mould_code=B.code
                        left   join TUser U on A.repair_person=U.usercode
                        where A.status='COMP' " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
@@ -2413,7 +2558,6 @@
            return mes;
        }
        #endregion
        #region[模具上机,扫描模具编码]
@@ -2942,5 +3086,261 @@
            return mes;
        }
        #endregion
        #region[模具入库,扫描模具编码]
        public static ToMessage MouldInWareHouseQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select code,name,spec,status,usestatus,surp_life,resi_life
                        from TMouldInfo where code=@mouldcode";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        switch (dt.Rows[0]["usestatus"].ToString())
                        {
                            case "0": //在库
                                mes.code = "300";
                                mes.Message = "当前模具在库状态,不符合入库操作!";
                                mes.data = null;
                                return mes;
                            case "2": //上机
                                mes.code = "300";
                                mes.Message = "当前模具上机状态,不符合入库操作!";
                                mes.data = null;
                                return mes;
                            case "7": //外借
                                mes.code = "300";
                                mes.Message = "当前模具外借状态,不符合入库操作!";
                                mes.data = null;
                                return mes;
                            default:
                                mes.code = "200";
                                mes.Message = "查询成功!";
                                mes.data = dt;
                                break;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "模具故障或维修中,不允许入库操作!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldInWareHouseSave(string mouldcode, string warehousecode, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入模具出入库记录表(入库操作)
                sql = @"insert into  TMould_InOutReord(mould_code,type,warehouse_code,description,lm_user,lm_date)
                        values(@mould_code,@type,@warehouse_code,@description,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "IN",
                        warehouse_code = warehousecode,
                        description = description,
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写模具清单,使用状态(入库),仓库编码
                sql = @"update TMouldInfo set usestatus='0',warehousecode=@warehousecode  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode, warehousecode = warehousecode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具入库", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "模具入库成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "模具入库失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具出库,扫描模具编码]
        public static ToMessage MouldOutWareHouseQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select *   from TMouldInfo where code=@mouldcode ";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        //判断当前模具是否在外借状态
                        sql = @"select M.code as mould_code,M.name as mould_name,M.spec as mould_spec,
                                M.surp_life,M.resi_life,M.warehousecode,C.name as  warehousename
                                from TMouldInfo M
                                left join TSecStck C on M.warehousecode=C.code
                                where M.code=@mouldcode and M.usestatus='0'";
                        dynamicParams.Add("@mouldcode", mouldcode);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        if (data.Rows.Count > 0)
                        {
                            mes.code = "200";
                            mes.Message = "查询成功!";
                            mes.data = data;
                            return mes;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.Message = "当前模具未在库,不符合出库操作!";
                            mes.data = null;
                            return mes;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "模具故障或维修中,不符合出库操作!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldOutWareHouseSave(string mouldcode, string warehousecode, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入模具出入库记录表(出库操作)
                sql = @"insert into  TMould_InOutReord(mould_code,type,warehouse_code,description,lm_user,lm_date)
                        values(@mould_code,@type,@warehouse_code,@description,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "OUT",
                        warehouse_code = warehousecode,
                        description = description,
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写模具清单,使用状态(出库),清除仓库编码
                sql = @"update TMouldInfo set usestatus='1',warehousecode=@warehousecode  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode, warehousecode ="" } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具出库", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "模具出库成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "模具出库失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}