Forráskód Böngészése

后端报事单,投诉单及上传图片功能

shengxuefei 2 éve
szülő
commit
41c73f954e

+ 1 - 0
.gitignore

@@ -110,3 +110,4 @@ Backup*/
 UpgradeLog*.XML
 
 /PMS.NetCore/.vs
+/PropertyH5/node_modules

+ 38 - 10
PMS.NetCore/PMS.NetCore.BusinessCore/BaseCore/fdc_pm_meterrecordManager.cs

@@ -4,6 +4,7 @@ using System;
 using System.Collections.Generic;
 using Utils;
 using System.Data;
+using System.IO;
 
 public class fdc_pm_meterrecordManager : DbContext<fdc_pm_meterrecord>
 {
@@ -235,8 +236,8 @@ public class fdc_pm_meterrecordManager : DbContext<fdc_pm_meterrecord>
                 Db.RollbackTran();
                 return "不存在的用户";
             }
-            var hcode = model.hcode.SConvertString();
-            var ownerid = model.ownerid.SConvertString();
+            var hcode = model.hcode;
+            var ownerid = model.ownerid;
             fdc_pm_repairapply fdc_pm_repairapplyinfo = new fdc_pm_repairapply();
             fdc_pm_repairapplyinfo.vtypecode = "10";//报事类型
             fdc_pm_repairapplyinfo.dapplydate = DateTime.Now;//日期
@@ -273,19 +274,27 @@ public class fdc_pm_meterrecordManager : DbContext<fdc_pm_meterrecord>
             fdc_pm_repairapplyinfo.dbilldate = DateTime.Now;
             fdc_pm_repairapplyinfo.billtype =type==1?"3": "1";//报事类型
 
-            Db.Insertable(fdc_pm_repairapplyinfo).ExecuteCommand();
+            var entity = Db.Insertable(fdc_pm_repairapplyinfo).ExecuteReturnEntity();
             
-           
-            string[] url = dto.fileurl.Split(',');
-            if (url.Length > 0)   //附件插入
+           foreach(var item in dto.fileList)
             {
-                for (int i = 0; i < url.Length - 1; i++)
+                var name = Guid.NewGuid().ToString();
+                var filename= Guid.NewGuid().ToString() + Path.GetExtension(item.Name);
+                var uploadSuccess = UploadFileHelper.Base64StringToFile(item.Content, filename);
+                if(!uploadSuccess)
+                {
+                    Db.RollbackTran();
+                    return "上传失败";
+                }
+               string sql = $"insert into Fdc_pm_file values ('{entity.vrepairapplycode}','{filename}','{name}')";
+               var row=Db.Ado.ExecuteCommand(sql);
+                if (row <= 0)
                 {
-                    string sql = "insert into Fdc_pm_file values ('" + sid + "','" + url[i].Replace(".jpg", ".png") + "','" + sid + "')";
-                    Db.Ado.ExecuteCommand(sql);
-                    
+                    Db.RollbackTran();
+                    return "保存上传文件失败";
                 }
             }
+           
             Db.CommitTran();
             return "success";
         }
@@ -544,4 +553,23 @@ public class fdc_pm_meterrecordManager : DbContext<fdc_pm_meterrecord>
 
         //hddfdc_pm_revfare_b = JSON.Serialize(fdc_pm_revfare_blist);//序列号
     }
+    /// <summary>
+    /// 获取报修详情
+    /// </summary>
+    /// <param name="code"></param>
+    /// <returns></returns>
+    public dynamic GetRepairDetail(string code)
+    {
+        var sql = $@"SELECT e.username as voperatorname,f.username as vemployeename,d.deptname,a.*
+              FROM fdc_pm_repairapply a 
+                            INNER JOIN fdc_pm_house b on a.hcode=b.hcode 
+                             INNER JOIN fdc_pm_owner c on a.ownerid=c.ownerid 
+                            INNER JOIN  depts d on a.deptcode=d.deptcode 
+                           LEFT JOIN users e on a.voperatorid=e.staffcode
+                            LEFT JOIN users f on a.vemployeeid=f.staffcode
+                           WHERE a.vrepairapplycode='{code}' ";
+        //logger.Info($"sql:{sql}");
+        var model = Db.SqlQueryable<dynamic>(sql).First();
+        return model;
+    }
 }

+ 2 - 2
PMS.NetCore/PMS.NetCore.BusinessCore/BaseCore/maxbillcodeManager.cs

@@ -88,8 +88,8 @@ public class maxbillcodeManager : DbContext<maxbillcode>
 
         var cmdParams = new List<SugarParameter>()
         {
-            new SugarParameter("@Category",""),
-            new SugarParameter("@Sign","")
+            new SugarParameter("@Category",category),
+            new SugarParameter("@Sign",sgn)
         };
 
         string billCode = "";

+ 8 - 1
PMS.NetCore/PMS.NetCore.Enties/DTO/BaoshiDTO.cs

@@ -40,6 +40,13 @@ namespace Sugar.Enties
         /// <summary>
         /// 图片地址
         /// </summary>
-        public string fileurl { get; set; }
+        public  List<file> fileList { get; set; }
+    }
+    public class file
+    {
+        public string Name { get; set; }
+        public string Type { get; set; }
+        public long Size { get; set; }
+        public string Content { get; set; }
     }
 }

+ 34 - 1
PMS.NetCore/PMS.NetCore/Controllers/MeterController.cs

@@ -300,6 +300,38 @@ namespace PMS.NetCore.Controllers
 
         }
 
+
+        /// <summary>
+        /// 获取报修详情
+        /// </summary>
+        /// <param name="code"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("GetRepairDetail")]
+        public JsonResult GetRepairDetail(string code)
+        {
+            var res = new ApiResponse();
+            logger.Info($"【GetRepairDetail 输入参数】code:{code}");
+            try
+            {
+                var service = new fdc_pm_meterrecordManager();
+                var model = service.GetRepairDetail(code);
+                
+                res.IsSuccess = true;
+                res.Data = model;
+                logger.Info($"GetRepairDetail 输出参数】res:{JsonConvert.SerializeObject(res)}");
+                return Json(res);
+
+            }
+            catch (Exception ex)
+            {
+                logger.Error(ex);
+                res.ErrMsg = ex.Message;
+                res.Code = 500;
+                return Json(res);
+            }
+        }
+
         /// <summary>
         /// 添加报事单
         /// </summary>
@@ -314,7 +346,8 @@ namespace PMS.NetCore.Controllers
             try
             {
                 logger.Info($"【Insertfdc_pm_repair 输入参数】dto:{JsonConvert.SerializeObject(dto)}");
-               
+                //res.ErrMsg = "输出";
+                //return Json(res);
                 var service = new fdc_pm_meterrecordManager();
                 var resstr = service.Insertfdc_pm_repair(dto,0);
                 

+ 27 - 0
PMS.NetCore/Utils/UploadFileHelper.cs

@@ -69,5 +69,32 @@ namespace Utils
             Stream stream = new MemoryStream(bytes);
             return stream;
         }
+        /// <summary>
+        /// base64字符串转文件
+        /// </summary>
+        /// <param name="base64String"></param>
+        /// <param name="fileName"></param>
+        /// <returns></returns>
+        public static bool Base64StringToFile(string base64String, string fileName)
+        {
+            bool opResult = false;
+            try
+            { 
+                string fileFullPath = AppDomain.CurrentDomain.BaseDirectory+"\\uploadimg";        //文件保存路径 
+                string strbase64 = base64String.Trim().Substring(base64String.IndexOf(",") + 1);   //将‘,’以前的多余字符串删除
+                MemoryStream stream = new MemoryStream(Convert.FromBase64String(strbase64));               
+                FileStream fs = new FileStream(fileFullPath + "\\" + fileName, FileMode.OpenOrCreate, FileAccess.Write);
+                byte[] b = stream.ToArray();
+                fs.Write(b, 0, b.Length);
+                fs.Close();
+
+                opResult = true;
+            }
+            catch (Exception e)
+            {
+                throw;
+            }
+            return opResult;
+        }
     }
 }