| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206 |
- using RMYY_CallCenter_Api.DB;
- using RMYY_CallCenter_Api.Models;
- using RMYY_CallCenter_Api.Models.Enum;
- using RMYY_CallCenter_Api.Models.Input;
- using RMYY_CallCenter_Api.Utility;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Reflection;
- using System.Web;
- using System.Web.Mvc;
- namespace RMYY_CallCenter_Api.Controllers
- {
- public class FaultRepairController : BaseController
- {
- private BLL .T_FaultRepair_Base baseBll = new BLL.T_FaultRepair_Base();
- private BLL.T_FaultRepair_Evaluate evaBll = new BLL.T_FaultRepair_Evaluate();
- private BLL.T_FaultRepair_OperationLog logBll = new BLL.T_FaultRepair_OperationLog();
- private BLL.T_FaultRepair_Process dealBll = new BLL.T_FaultRepair_Process();
- Bll.T_Sys_GongDan gdbll = new Bll.T_Sys_GongDan();
- private Bll.T_Sys_SystemConfig configBll = new Bll.T_Sys_SystemConfig();
- private Bll.T_Sys_DictionaryValue dictionaryValueBLL = new Bll.T_Sys_DictionaryValue();
- private Bll.T_Sys_Department departmentBLL = new Bll.T_Sys_Department();
- private Bll.T_InvolvedEquip_RepairProcess equipbll = new Bll.T_InvolvedEquip_RepairProcess();
- public DataTable GetFileData(string ids, string prefix)
- {
- DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
- foreach (DataRow dr in dt.Rows)
- {
- dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
- }
- return dt;
- }
- /// <summary>
- /// 上传附件
- /// </summary>
- /// <returns></returns>
- //[Authority]
- public ActionResult UploadFile()
- {
- #region 多个上传
- HttpFileCollectionBase files = Request.Files;
- if (files.Count > 0)
- {
- List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
- string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
- for (int i = 0; i < files.Count; i++)
- {
- HttpPostedFileBase file = files[i];
- string name = FileHelper.Upload(file, path);
- Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
- model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
- model_T_Sys_Accessories.F_FileName = name;//附件名称
- model_T_Sys_Accessories.F_FileType = Path.GetExtension(file.FileName);//附件类型
- model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
- model_T_Sys_Accessories.F_Size = file.ContentLength;
- model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
- int id = new Bll.T_Sys_Accessories().Add(model_T_Sys_Accessories);
- model_T_Sys_Accessories.F_FileId = id;
- acs.Add(model_T_Sys_Accessories);
- }
- return Success("成功", acs);
- }
- else
- {
- return Error("请选择要上传的文件");
- }
- #endregion
- }
- //添加工单
- /// <summary>
- ///添加
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public ActionResult AddFaultRepairWorkOrder(T_FaultRepairBaseinput input)
- {
- Model.T_FaultRepair_Base model = new Model.T_FaultRepair_Base();
- model.F_Applicant = input.Applicant;
- if (string.IsNullOrEmpty(input.ApplicationDept))
- {
- return Error("申请部门是必填");
- }
- model.F_ApplicationDept = input.ApplicationDept.Trim();
- model.F_Phone = input.Phone;
- model.F_Applicantsphone = input.Applicantsphone;
- if (string.IsNullOrEmpty(input.WorkOrderCategory))
- {
- return Error("工单类别是必填");
- }
- model.F_WorkOrderCategory = input.WorkOrderCategory.Trim();
- model.F_Content = input.Content;
- model.F_PlaceOfRepair = input.PlaceOfRepair;
- model.F_File = input.File;
- model.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
- if (input.IsEnd == 1)
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.finish;
- model.F_MaintenanceDept = User.F_DeptId.ToString();
- model.F_Maintenancer = User.F_UserCode;
- model.F_Endtime = DateTime.Now;
- model.F_Deadline = DateTime.Now;
- }
- else if (!string.IsNullOrEmpty(input.MaintenanceDept))
- {
- model.F_MaintenanceDept = input.MaintenanceDept;
- if (!string.IsNullOrEmpty(input.Maintenancer))
- {
- model.F_Maintenancer = input.Maintenancer;
- model.F_AssignTime = DateTime.Now;
- model.F_AssignUser = User.F_UserCode;
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='"+model.F_WorkOrderCategory+"'");
- int timeout = listgd.First().F_TimeOut;
- model.F_Deadline = DateTime.Now.AddHours(timeout);
- }
- else
- {
- var user = GetBeOnDuty(input.MaintenanceDept);
- if (user != null && user.Count > 1)
- {
- model.F_Maintenancer = user[0];
- input.Maintenancer = user[0];
- model.F_AssignTime = DateTime.Now;
- model.F_AssignUser = User.F_UserCode;
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int timeout = listgd.First().F_TimeOut;
- model.F_Deadline = DateTime.Now.AddHours(timeout);
- }
- else
- {
- return Error("请选择指派人员");
- }
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
- }
- else
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
- }
- model.F_CreateTime = DateTime.Now;
- model.F_CreateUser = User.F_UserCode;
- model.F_CreateUserDept = User.F_DeptId.ToString();
- if (input.LeaveRecordId != null && input.LeaveRecordId > 0)
-
- {
- var ld = new Bll.T_Call_LeaveRecord().GetModel(input.LeaveRecordId.Value);
- if (ld != null)
- {
- ld.F_Status = 1;
- ld.F_DealTime = DateTime.Now;
- ld.F_UserId = User.F_UserId;
- ld.F_UserCode = User.F_UserCode;
- ld.F_UserName = User.F_UserName;
- new Bll.T_Call_LeaveRecord().Update(ld);
- model.F_LeaveRecordId = input.LeaveRecordId;
- }
- }
- //if (input.CallRecordsId!=null && input.CallRecordsId>0)
- //{
- // var rd = new Bll.T_Call_CallRecords().GetModelByRecordId(input.CallRecordsId.ToString());
- // if (rd != null)
- // {
- // model.F_CallId = rd.CallId;
- // rd.WorkOrderId = model.F_WorkOrderCode;//.F_WorkOrderId;
- // rd.IsExitWorkOrder = true;
- // new Bll.T_Call_CallRecords().Update(rd);
- // model.F_CallRecordId = rd.CallRecordsId;
- // }
- //}
- //else
- if (!string.IsNullOrEmpty(input.CallId))
- {
- model.F_CallId = input.CallId;
- var rd = new Bll.T_Call_CallRecords().GetModelByCallId(input.CallId);
- if (rd != null)
- {
- rd.WorkOrderId = model.F_WorkOrderCode;//.F_WorkOrderId;
- rd.IsExitWorkOrder = true;
- new Bll.T_Call_CallRecords().Update(rd);
- model.F_CallRecordId = rd.CallRecordsId;
- }
- }
- int returnid = baseBll.Add(model);
- if (returnid > 0)
- {
- AddAddlog(model.F_WorkOrderCode);
-
- if ( !string.IsNullOrEmpty(input.MaintenanceDept))
- {
- AddAssignlog(model.F_WorkOrderCode, input.MaintenanceDept,input.Maintenancer);
-
- }
- if (input.IsEnd == 1)
- {
- AddOperatorLog("完结了工单", (int)EnumOperatorType.dealed, model.F_WorkOrderCode);
- }
- return Success("添加成功!",returnid);
- }
- else return Error("添加失败!");
- }
- //综合保障中心编辑工单
- /// <summary>
- ///编辑
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public ActionResult UpdateFaultRepairWorkOrder(T_FaultRepairBaseinput input)
- {
- Model.T_FaultRepair_Base model= baseBll.GetModel(input.WorkOrderCode);
-
- model.F_Applicant = input.Applicant;
- model.F_ApplicationDept = input.ApplicationDept;
- model.F_Phone = input.Phone;
- model.F_Applicantsphone = input.Applicantsphone;
- model.F_WorkOrderCategory = input.WorkOrderCategory;
- model.F_Content = input.Content;
- model.F_PlaceOfRepair = input.PlaceOfRepair;
- model.F_File = input.File;
- bool addassignlog = false;
- //综合保障中心没有直接结束的按钮
- if (input.IsEnd == 1)
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.finish;
- model.F_MaintenanceDept = User.F_DeptId.ToString();
- model.F_Endtime = DateTime.Now;
- model.F_Maintenancer = User.F_UserCode;
- }
-
- else if (!string.IsNullOrEmpty(input.MaintenanceDept))
- {
- if ( string.IsNullOrEmpty(model.F_MaintenanceDept))
- {
- model.F_AssignTime = DateTime.Now;
- model.F_AssignUser = User.F_UserCode;
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int timeout = listgd.First().F_TimeOut;
- model.F_Deadline = DateTime.Now.AddHours(timeout);
- model.F_MaintenanceDept = input.MaintenanceDept;
- if (!string .IsNullOrEmpty(input.Maintenancer))
- model.F_Maintenancer = input.Maintenancer;
- else
- {
- var user = GetBeOnDuty(input.MaintenanceDept);
- if (user != null && user.Count > 1)
- {
- model.F_Maintenancer = user[0];
- }
- else
- {
- return Error("请选择指派人员");
- }
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
- addassignlog = true;
- }
-
- }
- else
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
- }
- model.F_UpdateTime = DateTime.Now;
-
- if (baseBll.Update(model) )
- {
- if (addassignlog)
- {
- AddAssignlog(model.F_WorkOrderCode, input.MaintenanceDept, input.Maintenancer);
- }
- if (input.IsEnd == 1)
- {
- AddOperatorLog("完结了工单", (int)EnumOperatorType.dealed, model.F_WorkOrderCode);
- }
- return Success("编辑成功!");
- }
- else return Error("编辑失败!");
- }
- //查收
- public ActionResult CheckWorkOrder(string WorkOrderCode)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- if (model != null)
- {
- if (model.F_MaintenanceDept == User.F_DeptId.ToString())
- {
- if (!string.IsNullOrEmpty(model.F_Maintenancer) && User.F_UserCode!=model.F_Maintenancer)
- {
- return Error("你没有权限查收!");
- }
- model.F_UpdateTime = DateTime.Now;
- model.F_Maintenancer = User.F_UserCode;
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.dealing;
- baseBll.Update(model);
- AddOperatorLog("查收了工单", (int)EnumOperatorType.check, model.F_WorkOrderCode);
- return Success(" 查收成功!");
- }
- else
- {
- return Error("你没有权限查收!");
- }
- }
- return Error("工单不存在!");
- }
- //退单
- public ActionResult BackWorkOrder(string WorkOrderCode,string BackReason)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- if (model != null)
- {
- if (model.F_MaintenanceDept == User.F_DeptId.ToString())
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
- model.F_Maintenancer = "";
- model.F_MaintenanceDept = "";
- model.F_AssignTime = null;
- model.F_AssignUser = "";
- model.F_UpdateTime = DateTime.Now;
- model.F_Deadline = null;
- baseBll.Update(model);
- string s = "";
- if (!string.IsNullOrEmpty(BackReason))
- {
- s += ",退回原因:" + BackReason;
- }
- AddOperatorLog("退回了工单" + s, (int)EnumOperatorType.back, model.F_WorkOrderCode);
- return Success(" 退回成功!");
- }
- else
- {
- return Error("你没有权限退回!");
- }
- }
- return Error("工单不存在!");
- }
- //维修员能看见当前部门的所有的工单 ,对于所有的工单都能去处理
- //处理完成 、异常完结 Type=0 正常完成 Type=1异常完结 判断是不是返修的工单
- //点击正常完成的时候添加“是否涉及设备,是否涉及设备点击是,出现下拉框可多选设备,选择之后可输入对应的数量和价格
- public ActionResult DealWorkOrder(string WorkOrderCode, int Type, string Result,string File, List<Model.T_InvolvedEquip_RepairProcess> equipmodellist, int ExceptionType = 0, int IsInvolvedEquip = 0)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- if (Type == 0 && model.F_WorkOrderState != 6) {
- return Error("没有到达之前不能处理工单");
- }
- //判断是不是返修的,
- string sql = "select * from T_FaultRepair_Process where F_WorkOrderCode='" + WorkOrderCode + "' and F_ReturnReason is not null and F_Maintenancer='" + User.F_UserCode + "'";
- DataTable dt = DbHelperSQL.Query(sql).Tables[0];
- if (model != null)
- {
- //正常完成
- if (Type == 0)
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.dealed;
- model.F_Endtime = DateTime.Now;
- //是返修的工单
- if (dt != null && dt.Rows.Count > 0)
- {
-
- int procid= Convert.ToInt32( dt.Rows[0]["F_ProcessId"].ToString());
- string updatesql = "UPDATE T_FaultRepair_Process set F_ProcessingTime=GETDATE() ,F_Result='"+ Result + "' ,F_File='"+ File + "',F_Maintenancer='"+User.F_UserCode+"',F_MaintenanceDept='"+User.F_DeptId+ "',F_DealType='"+ (int)EnumFaultRepairDealType.normal + "', F_IsInvolvedEquip='"+ IsInvolvedEquip + "' where F_ProcessId='" + procid+"'";
- int updateid = DbHelperSQL.ExecuteSql(updatesql);
- if (IsInvolvedEquip == 1)
- {
- string ids = "";
- foreach (Model.T_InvolvedEquip_RepairProcess item in equipmodellist)
- {
- item.F_CreateTime = DateTime.Now;
- item.F_IsDelete = 0;
- item.F_RepairProcessId = procid;
- item.F_WorkOrderCode = WorkOrderCode;
- int equipid = equipbll.Add(item);
- ids += equipid + ",";
- }
- Model.T_FaultRepair_Process promodelnew = dealBll.GetModel(procid);
- promodelnew.F_EquipDetail = ids.Substring(0, ids.LastIndexOf(','));
- dealBll.Update(promodelnew);
- }
- if (updateid > 0)
- {
- baseBll.Update(model);
- AddOperatorLog("完结了工单", (int)EnumOperatorType.dealed, WorkOrderCode);
- return Success("处理完成");
- }
- else
- return Error("处理失败");
- }
- Model.T_FaultRepair_Process promodel = new Model.T_FaultRepair_Process();
- promodel.F_Isdelete = 0;
- promodel.F_MaintenanceDept = User.F_DeptId.ToString();// model.F_MaintenanceDept;
- promodel.F_Maintenancer = User.F_UserCode;// model.F_Maintenancer;
- promodel.F_ProcessingTime = DateTime.Now;
- promodel.F_Result = Result;
- promodel.F_File = File;
- promodel.F_WorkOrderCode = WorkOrderCode;
- promodel.F_IsInvolvedEquip = IsInvolvedEquip;//0 是否 1 是 是
-
- promodel.F_DealType = (int)EnumFaultRepairDealType.normal;
- int id = dealBll.Add(promodel);
- //是否涉及设备点击是,出现下拉框可多选设备,选择之后可输入对应的数量和价格
- if (id > 0 && IsInvolvedEquip == 1)
- {
- string ids = "";
- foreach (Model.T_InvolvedEquip_RepairProcess item in equipmodellist)
- {
- item.F_CreateTime = DateTime.Now;
- item.F_IsDelete = 0;
- item.F_RepairProcessId = id;
- item.F_WorkOrderCode = WorkOrderCode;
- int equipid= equipbll.Add(item);
- ids += equipid + ",";
- }
- Model.T_FaultRepair_Process promodelnew= dealBll.GetModel(id);
- promodelnew.F_EquipDetail = ids.Substring(0, ids.LastIndexOf(','));
- dealBll.Update(promodelnew);
- }
- if (id > 0)
- {
- baseBll.Update(model);
- AddOperatorLog("完结了工单", (int)EnumOperatorType.dealed, WorkOrderCode);
- return Success("处理完成");
- }
- else
- return Error("处理失败");
- }
- else
- {
- int dealtype = 0;
- // "自行解决";
- if (User.F_DeptId.ToString() == model.F_ApplicationDept)//创建工单的人是处理人,存自行解决
- {
- dealtype = (int)EnumFaultRepairDealType.resolve;// "自行解决";
- }
- else
- {
- dealtype = (int)EnumFaultRepairDealType.abnormal;
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.exceptionended;
- model.F_Endtime = DateTime.Now;
- //是返修的工单
- if (dt != null && dt.Rows.Count > 0)
- {
- // promodel.F_ExceptionType = ExceptionType;
- int procid = Convert.ToInt32(dt.Rows[0]["F_ProcessId"].ToString());
- string updatesql = "UPDATE T_FaultRepair_Process set F_ProcessingTime=GETDATE() ,F_Result='" + Result + "' ,F_File='" + File + "',F_UpdateTime= GETDATE(),dealtype='"+dealtype+ "' ,F_ExceptionType='"+ ExceptionType + "' where F_ProcessId='" + procid + "'";
- if (DbHelperSQL.ExecuteSql(updatesql) > 0)
- {
- baseBll.Update(model);
- AddOperatorLog("异常完结了工单", (int)EnumOperatorType.exceptionended, WorkOrderCode);
- return Success("异常完结");
- }
- else
- return Error("异常完结失败");
- }
- //异常完结工单
- Model.T_FaultRepair_Process promodel = new Model.T_FaultRepair_Process();
- promodel.F_Isdelete = 0;
- promodel.F_MaintenanceDept = User.F_DeptId.ToString();// model.F_MaintenanceDept;
- promodel.F_Maintenancer = User.F_UserCode;// model.F_Maintenancer;
- promodel.F_ProcessingTime = DateTime.Now;
- promodel.F_Result = Result;
- promodel.F_File = File;
- promodel.F_WorkOrderCode = WorkOrderCode;
- promodel.F_ExceptionType = ExceptionType;
- promodel.F_DealType = dealtype;
- if (dealBll.Add(promodel) > 0)
- {
- baseBll.Update(model);
- AddOperatorLog("异常完结了工单", (int)EnumOperatorType.exceptionended, WorkOrderCode);
- return Success("异常完结");
- }
- else
- return Error("异常完结失败");
- }
- }
- return Error("工单不存在");
- }
- //操作:挂起(挂起的工单超时时限不记录到超时时限中,只有处理中未完结的工单可挂起),另外列表显示一列“是否挂起”字段
- //协助.内外协助都生成新工单 Type 0是内部协助 1是外部协助
- public ActionResult AssistWorkOrder(string WorkOrderCode,string WorkOrderCategory, string Maintenancer,string Content,int Type)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- Model.T_FaultRepair_Base newmodel = new Model.T_FaultRepair_Base();
- if (Type == 0)
- {
- if (string.IsNullOrEmpty(Maintenancer))
- {
- return Error("请选择维修人");
- }
- newmodel.F_Applicant = model.F_Applicant;
- newmodel.F_Applicantsphone = model.F_Applicantsphone;
- newmodel.F_ApplicationDept = model.F_ApplicationDept;
- newmodel.F_Phone = model.F_Phone;
- newmodel.F_WorkOrderCategory = WorkOrderCategory;
- newmodel.F_Content = Content;
- newmodel.F_PlaceOfRepair = model.F_PlaceOfRepair;
- newmodel.F_Maintenancer = Maintenancer;
- newmodel.F_MaintenanceDept = model.F_MaintenanceDept;
- newmodel.F_AssignTime = DateTime.Now;
- newmodel.F_AssignUser = User.F_UserCode;
- newmodel.F_File = model.F_File;
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int timeout = listgd.First().F_TimeOut;
- newmodel.F_Deadline = DateTime.Now.AddHours(timeout);
- newmodel.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
- newmodel.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
- newmodel.F_CreateTime = DateTime.Now;
- newmodel.F_CreateUser = User.F_UserCode;
- newmodel.F_CreateUserDept = User.F_DeptId.ToString();
- if (baseBll.Add(newmodel) > 0)
- {
- AddAddlog(newmodel.F_WorkOrderCode);
-
- if (!string.IsNullOrEmpty(Maintenancer))
- {
- AddAssignlog(newmodel.F_WorkOrderCode,model.F_MaintenanceDept, Maintenancer);
- }
- //更新model
- if (!string.IsNullOrEmpty(model.F_InternalWorkOrderCode))
- {
- model.F_InternalWorkOrderCode +=","+ newmodel.F_WorkOrderCode;
- }
- else
- {
- model.F_InternalWorkOrderCode = newmodel.F_WorkOrderCode;
- }
- model.F_UpdateTime = DateTime.Now;
- baseBll.Update(model);
-
- AddInternalasslog(model.F_WorkOrderCode, newmodel.F_WorkOrderCode);
- return Success("添加成功!");
- }
- else return Error("添加失败!");
- }
- //外协作
- else
- {
- newmodel.F_Applicant = model.F_Applicant;
- newmodel.F_Applicantsphone = model.F_Applicantsphone;
- newmodel.F_ApplicationDept = model.F_ApplicationDept;
- newmodel.F_Phone = model.F_Phone;
- newmodel.F_WorkOrderCategory = WorkOrderCategory;
- newmodel.F_Content = Content;
- newmodel.F_PlaceOfRepair = model.F_PlaceOfRepair;
- //newmodel.F_Maintenancer = Maintenancer;
- //newmodel.F_MaintenanceDept = model.F_MaintenanceDept;
-
- newmodel.F_File = model.F_File;
- newmodel.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
- newmodel.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
- newmodel.F_CreateTime = DateTime.Now;
- newmodel.F_CreateUser = User.F_UserCode;
- newmodel.F_CreateUserDept = User.F_DeptId.ToString();
- if (baseBll.Add(newmodel) > 0)
- {
- AddOperatorLog("创建了工单", (int)EnumOperatorType.add, newmodel.F_WorkOrderCode);
- //更新原来的工单model
- if (!string.IsNullOrEmpty(model.F_ExternalWorkOrderCode))
- {
- model.F_ExternalWorkOrderCode += "," + newmodel.F_WorkOrderCode;
- }
- else
- {
- model.F_ExternalWorkOrderCode = newmodel.F_WorkOrderCode;
- }
- model.F_UpdateTime = DateTime.Now;
- baseBll.Update(model);
- AddExternalasslog(model.F_WorkOrderCode, newmodel.F_WorkOrderCode);
- return Success("添加成功!");
- }
- else return Error("添加失败!");
- }
-
-
- }
- //维修员的列表 待接单 待完成 已完成
- public ActionResult MaintenancerList( )
- {
- string sql = " and F_IsDelete=0 ";
- //待接单1 待完成 2 已完成 3
- string strpageindex = RequestString.GetQueryString("page");
- int pageindex = 1;
- string strpagesize = RequestString.GetQueryString("pagesize");
- int pagesize = 10;
- int strstate = RequestString.GetInt("state", -1);
- string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
-
- string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
-
- string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
- string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
- string strworkcode = HttpUtility.UrlDecode(RequestString.GetQueryString("workordercode"));
- //当前登录人只能看到当前部门的工单。管理员可以查看所有的工单
- if (User.F_RoleCode != "GLY")
- {
- sql += " and F_MaintenanceDept='" + User.F_DeptId + "'";
- }
- #region 搜索条件
- if (strpageindex.Trim() != "")
- {
- pageindex = Convert.ToInt32(strpageindex);
- }
- if (strpagesize.Trim() != "")
- {
- pagesize = Convert.ToInt32(strpagesize);
- }
- if (strname.Trim() != "" && strname != "undefined")
- {
- sql += " and F_Applicant = '" + strname + "' ";
- }
- if (strtel.Trim() != "" && strtel != "undefined")
- {
- sql += " and (F_Applicantsphone like '%" + strtel + "%' or F_Phone like '%" + strtel + "%') ";
- }
- if (strworkcode.Trim() != "" && strworkcode != "undefined")
- {
- sql += " and F_WorkOrderCode like'%" + strworkcode + "%'";
- }
- if (strstarttime.Trim() != "" && strstarttime != "undefined")
- {
- if (strendtime.Trim() != "" && strendtime != "undefined")
- {
- sql += " and F_CreateTime between '" + strstarttime +
- "' AND '" + strendtime + "'";
- }
- else
- {
- sql += " and F_CreateTime>='" + strstarttime + "' ";
- }
- }
- else
- {
- if (strendtime.Trim() != "" && strendtime != "undefined")
- {
- sql += " and F_CreateTime<='" + strendtime + "' ";
- }
- }
- #endregion
- switch (strstate)
- {
- case 1:
- sql += " and F_WorkOrderState=1";
- break;
- case 2:
- sql += " and (F_WorkOrderState=2 or F_WorkOrderState=6)";
- break;
- case 3:
- sql += " and (F_WorkOrderState>=3 and F_WorkOrderState!=6 )";
- break;
- }
- int recordCount = 0;
- DataTable datatable = Bll.PagerBll.GetListPager
- ("T_FaultRepair_Base ",
- "F_WorkOrderId",
- "*,[dbo].[GetUserName](F_Maintenancer) Maintenancer,[dbo].[GetUserName](F_Applicant) Applicant,[dbo].[GetAssistanceState](F_WorkOrderCode) AssistanceState,(case F_isstop when 1 then '是' when 0 then '否' else '' end ) ishangup",
- sql,
- "order by F_WorkOrderId desc",
- pagesize,
- pageindex,
- true,
- out recordCount
- );
- datatable = WorkOrderBase.SetOtherField(datatable, MENUENUM.报修列表, User.F_RoleId, 3000);
-
- var obj = new
- {
- state = "success",
- message = "成功",
- rows = datatable,
- total = recordCount
- };
- return Content(obj.ToJson());
-
- }
- //报修人的列表 已上报 待评价 已完结
- //public ActionResult MyCreateList()
- //{
- // DataTable dt = new DataTable();
- // string sql = " and F_IsDelete=0 and F_CreateUser='" + User.F_UserCode + "'";
- // string strpageindex = RequestString.GetQueryString("page");
- // int pageindex = 1;
- // string strpagesize = RequestString.GetQueryString("pagesize");
- // int pagesize = 10;
- // //待处理传2 已处理传3
- // int strstate = RequestString.GetInt("state", -1);
- // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
- // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
- // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
- // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
- // string strworkcode = HttpUtility.UrlDecode(RequestString.GetQueryString("workordercode"));
- // #region 搜索条件
- // if (strpageindex.Trim() != "")
- // {
- // pageindex = Convert.ToInt32(strpageindex);
- // }
- // if (strpagesize.Trim() != "")
- // {
- // pagesize = Convert.ToInt32(strpagesize);
- // }
- // if (strname.Trim() != "" && strname != "undefined")
- // {
- // sql += " and F_Applicant = '" + strname + "' ";
- // }
- // if (strtel.Trim() != "" && strtel != "undefined")
- // {
- // sql += " and (F_Applicantsphone like '%" + strtel + "%' or F_Phone like '%" + strtel + "%') ";
- // }
- // if (strworkcode.Trim() != "" && strworkcode != "undefined")
- // {
- // sql += " and F_WorkOrderCode like'%" + strworkcode + "%'";
- // }
- // if (strstarttime.Trim() != "" && strstarttime != "undefined")
- // {
- // if (strendtime.Trim() != "" && strendtime != "undefined")
- // {
- // sql += " and F_CreateTime between '" + strstarttime +
- // "' AND '" + strendtime + "'";
- // }
- // else
- // {
- // sql += " and F_CreateTime>='" + strstarttime + "' ";
- // }
- // }
- // else
- // {
- // if (strendtime.Trim() != "" && strendtime != "undefined")
- // {
- // sql += " and F_CreateTime<='" + strendtime + "' ";
- // }
- // }
- // #endregion
- // //报修人 待处理2 已处理3
- // switch (strstate)
- // {
- // case 2:
- // sql += " and F_WorkOrderState<=3";
- // break;
- // case 3:
- // sql += " and F_WorkOrderState>3";
- // break;
- // }
- // int recordCount = 0;
- // dt = Bll.PagerBll.GetListPager
- // ("T_FaultRepair_Base ",
- // "F_WorkOrderId",
- // "*,[dbo].[GetUserName](F_Maintenancer) Maintenancer,[dbo].[GetUserName](F_Applicant) Applicant",
- // sql,
- // "order by F_WorkOrderId desc",
- // pagesize,
- // pageindex,
- // true,
- // out recordCount
- // );
- // dt.Columns.Add("GapTime", typeof(string));//执行时限
- // dt.Columns.Add("AssistanceState", typeof(string));//协作工单的状态
- // dt.Columns.Add("StateName", typeof(object));//展示的工单状态值
- // dt.Columns.Add("Buttons", typeof(object));//操作按钮
- // foreach (DataRow dr in dt.Rows)
- // {
- // #region 执行时限 不是已完成的工单 展示这个字段
- // if (Convert.ToInt32(dr["F_WorkOrderState"]) < 3)
- // {
- // if (!string.IsNullOrEmpty(dr["F_Deadline"].ToString()))
- // {
- // DateTime deadline = Convert.ToDateTime(dr["F_Deadline"]);
- // TimeSpan ts = deadline.Subtract(DateTime.Now);
- // double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
- // if (tss < 0) { tss = -tss; }
- // string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
- // if (deadline > DateTime.Now)
- // {
- // dr["GapTime"] = "剩余" + gshsj;
- // }
- // else
- // {
- // dr["GapTime"] = "超时" + gshsj;
- // }
- // }
- // }
- // #endregion
- // #region 展示的工单状态
- // if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.neworder || Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.receive)
- // {
- // dr["StateName"] = "待接单";
- // }
- // else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealing)
- // {
- // dr["StateName"] = "已接单";
- // }
- // else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealed)
- // {
- // dr["StateName"] = "待评价";
- // }
- // else {
- // dr["StateName"] = "已完成";
- // }
- // #endregion
- // #region 操作按钮
- // var btns = new List<FaultButtonGroup.button>();
- // //待接单 已接单 -自行解决
-
- // if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.neworder ||
- // Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.receive ||
- // Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealing
- // )
- // {
- // btns.Add(FaultButtonGroup.solve());
- // }
- // //待评价 评价
- // else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealed)
- // {
- // btns.Add(FaultButtonGroup.evaluate());
- // }
- // else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.exceptionended ||
- // Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.finish
- // )
- // {
- // btns.Add(FaultButtonGroup.returndeal());
- // }
- // dr["Buttons"] = btns;
- // #endregion
- // }
- // var obj = new
- // {
- // state = "success",
- // message = "成功",
- // rows = dt,
- // total = recordCount
- // };
- // return Content(obj.ToJson());
- //}
- //工单详情
- public ActionResult GetWorkOrder()
- {
- var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
- string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("WorkOrderCode"));
- Model.T_FaultRepair_Base model = baseBll.GetModel(strworkorderid);
- int type = RequestString.GetInt("type", 0);//0基本信息1处理结果2协作工单3工单流程4维修记录5评价
- if (!string.IsNullOrEmpty(strworkorderid))
- {
- switch (type)
- {
- case 6:
- string sqlfx = " select top 1 F_ReturnReason from T_FaultRepair_Process where F_ReturnReason is not null and F_WorkOrderCode='" + strworkorderid + "' order by F_ProcessingTime desc";
-
- object dtfx = DbHelperSQL.GetSingle(sqlfx);
- if (dtfx != null && !string.IsNullOrEmpty( dtfx.ToString()))
- {
-
- return Success("是返修", dtfx.ToString());
- }
- return Success("不是返修");
- case 0:
- //基本信息
- string sql = "select *,[dbo].[GetUserName](F_Applicant) applicantname from T_FaultRepair_Base where F_WorkOrderCode='" + strworkorderid + "'";
- DataTable dtbase = DbHelperSQL.Query(sql).Tables[0];
- dtbase.Columns.Add("FileUrl",typeof(object));
- dtbase.Columns.Add("StateName");
- dtbase.Columns.Add("TypeName");
- foreach (DataRow dr in dtbase.Rows)
- {
- dr["TypeName"] = "故障报修";
- if (configfj != null && ! string.IsNullOrEmpty(dr["F_File"].ToString()))
- {
- dr["FileUrl"] = GetFileData(dr["F_File"].ToString(), configfj.F_ParamValue);
- }
- if (User.F_RoleCode == "DDZX" || User.F_RoleCode == "GLY")
- {
- #region weixiuyuan展示的工单状态
- if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.neworder)
- {
- dr["StateName"] = "待派单";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.receive)
- {
- dr["StateName"] = "待查收";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealing || Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.arrive)
- {
- dr["StateName"] = "待完成";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealed)
- {
- dr["StateName"] = "已处理";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.exceptionended)
- {
- dr["StateName"] = "异常完结";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.finish)
- {
- dr["StateName"] = "已完结";
- }
- #endregion
- }
- else if (User.F_RoleCode == "WXY")
- {
- #region weixiuyuan展示的工单状态
- if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.receive || Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.neworder)
- {
- dr["StateName"] = "待接单";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealing || Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.arrive)
- {
- dr["StateName"] = "待完成";
- }
- else
- {
- dr["StateName"] = "已完成";
- }
- #endregion
- }
- else //报修人
- {
- #region 展示的工单状态
- if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.neworder || Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.receive)
- {
- dr["StateName"] = "待接单";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealing || Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.arrive)
- {
- dr["StateName"] = "已接单";
- }
- else if (Convert.ToInt32(dr["F_WorkOrderState"]) == (int)EnumFaultRepairWorkOrderState.dealed)
- {
- dr["StateName"] = "待评价";
- }
- else
- {
- dr["StateName"] = "已完成";
- }
- #endregion
- }
- }
-
- return Success("获取成功", dtbase);
- case 1://处理结果
- string sqlcl = "select *,[dbo].[GetUserName](F_Maintenancer) username,[dbo].[GetPhoneByUserCode](F_Maintenancer) usertel ,case F_DealType when 0 then '正常完成' when 1 then '异常完成' when 2 then '自行解决' else '' end dealtype from T_FaultRepair_Process where F_WorkOrderCode='" + strworkorderid + "'";
- DataTable dtcl = DbHelperSQL.Query(sqlcl).Tables[0];
- dtcl.Columns.Add("FileUrl", typeof(object));
- foreach (DataRow dr in dtcl.Rows)
- {
- if (configfj != null && !string.IsNullOrEmpty(dr["F_File"].ToString()))
- {
- dr["FileUrl"] = GetFileData(dr["F_File"].ToString(), configfj.F_ParamValue);
- }
- }
- return Success("获取处理结果成功", dtcl);
- case 2://协作工单
- string internalsql = " select F_WorkOrderCode,F_Content,F_MaintenanceDept,F_CreateTime,F_WorkOrderState from T_FaultRepair_Base where F_WorkOrderCode in " +
- "(select col from [dbo].[SplitToNvarchar]('" + model.F_InternalWorkOrderCode + "',',' )) ";
- DataTable internaldt = DbHelperSQL.Query(internalsql).Tables[0];
-
- string externalsql = " select F_WorkOrderCode,F_Content,F_MaintenanceDept,F_CreateTime,F_WorkOrderState from T_FaultRepair_Base where F_WorkOrderCode in " +
- "(select col from [dbo].[SplitToNvarchar]('" + model.F_ExternalWorkOrderCode + "',',' )) ";
- DataTable externaldt = DbHelperSQL.Query(externalsql).Tables[0];
-
- if (internaldt != null && internaldt.Rows.Count > 0)
- {
- internaldt.Columns.Add("StateName", typeof( String));
- internaldt.Columns.Add("Mode", typeof(String));
- foreach (DataRow item in internaldt.Rows)
- {
- if (Convert.ToInt32(item["F_WorkOrderState"]) < 3)
- {
- item["StateName"] = "未完成";
- }
- else
- {
- item["StateName"] = "已完成";
- }
- item["Mode"] = "内部协作";
- }
- }
- if (externaldt != null && externaldt.Rows.Count > 0)
- {
- externaldt.Columns.Add("StateName", typeof(String));
- externaldt.Columns.Add("Mode", typeof(String));
- foreach (DataRow item in externaldt.Rows)
- {
- if (Convert.ToInt32(item["F_WorkOrderState"]) < 3)
- {
- item["StateName"] = "未完成";
- }
- else
- {
- item["StateName"] = "已完成";
- }
- item["Mode"] = "外部协作";
- }
- }
- DataTable dtt = new DataTable();
- dtt.Columns.Add("F_WorkOrderCode", typeof(String));
- dtt.Columns.Add("F_Content", typeof(String));
- dtt.Columns.Add("F_MaintenanceDept", typeof(String));
- dtt.Columns.Add("F_WorkOrderState", typeof(String));
-
- dtt.Columns.Add("F_CreateTime", typeof(DateTime));
- dtt.Columns.Add("StateName", typeof(String));
- dtt.Columns.Add("Mode", typeof(String));
- if (internaldt!=null && internaldt.Rows.Count>0)
- {
- foreach (DataRow row in internaldt.Rows)
- {
- dtt.ImportRow(row);
- }
- }
- if (externaldt != null && externaldt.Rows.Count > 0)
- {
- foreach (DataRow row in externaldt.Rows)
- {
- dtt.ImportRow(row);
- }
- }
- var obj3 = new
- {
- data = dtt,
-
- };
- return Success("获取协作工单成功", obj3);
- case 3://工单流程
- var sqllog = "select *,[dbo].[GetUserName](F_Operator) username from T_FaultRepair_OperationLog where F_WorkOrderCode = '" + strworkorderid + "' " + " order by F_OperationId desc";
- DataTable dtlog = DbHelperSQL.Query(sqllog).Tables[0];
- return Success("获取工单流程成功", dtlog);
-
- case 4://维修记录
- string sqlcl2 = "select *,[dbo].[GetUserName](F_Maintenancer) username,[dbo].[GetPhoneByUserCode](F_Maintenancer) usertel from T_FaultRepair_Process where F_WorkOrderCode='" + strworkorderid + "'";
- DataTable dtcl2 = DbHelperSQL.Query(sqlcl2).Tables[0];
- dtcl2.Columns.Add("FileUrl", typeof(object));
- foreach (DataRow dr in dtcl2.Rows)
- {
- if (configfj != null && !string.IsNullOrEmpty(dr["F_File"].ToString()))
- {
- dr["FileUrl"] = GetFileData(dr["F_File"].ToString(), configfj.F_ParamValue);
- }
- }
- return Success("获取处理结果成功", dtcl2);
- case 5://评价
- string sqle = "select top 1 * from T_FaultRepair_Evaluate where F_WorkOrderCode='" + strworkorderid + "'"+ " order by F_EvaluationTime desc";
- DataTable dte = DbHelperSQL.Query(sqle).Tables[0];
- return Success("获取处理结果成功", dte);
-
- }
-
- }
-
- return Error("没传参数");
-
- }
- //转派 ,派给自己的工单 转给同部门的别的人
- //0 是转同事 1 是转组长
- public ActionResult Transfer(string WorkOrderCode,string ToUserCode,int type =0)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- if (model != null && model.F_Maintenancer == User.F_UserCode)
- {
- if (type == 0)
- {
- //转同事
- model.F_Maintenancer = ToUserCode;
- model.F_UpdateTime = DateTime.Now;
- AddOperatorLog("转派工单给" + GetDeptModel(model.F_MaintenanceDept) + "部门" + GetUserModel(ToUserCode), (int)EnumOperatorType.transfer, WorkOrderCode);
- baseBll.Update(model);
- return Success("转派成功");
- }
- else
- {
- //是转组长
- var role = new Bll.T_Sys_Role().GetModelList("F_RoleCode='WXBZZ' and F_State =1");
- var userzz = new Bll.T_Sys_UserAccount().GetModelList("F_DeptId='" + model.F_MaintenanceDept + "' and F_DeleteFlag=0 " +
- "and F_RoleId = '" + role.FirstOrDefault().F_RoleId + "'");
- if (userzz != null && userzz.Count > 0)
- {
- //转同事
- model.F_Maintenancer = userzz.First().F_UserCode;
- model.F_UpdateTime = DateTime.Now;
- AddOperatorLog("转派工单给" + GetDeptModel(model.F_MaintenanceDept) + "部门" + GetUserModel(userzz.First().F_UserCode), (int)EnumOperatorType.transfer, WorkOrderCode);
- baseBll.Update(model);
- return Success("转派成功");
- }
- else
- {
- return Error("没有维修部组长");
- }
- }
- }
- return Error("暂时没有权限操作");
- }
- //调度中心转派
- public ActionResult DDZXTransfer(string WorkOrderCode, string ToUserCode,string ToDept)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- if (model != null && !string.IsNullOrEmpty(ToUserCode) && !string.IsNullOrEmpty(ToDept))
- {
- model.F_AssignUser = User.F_UserCode;
- model.F_AssignTime = DateTime.Now;
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int timeout = listgd.First().F_TimeOut;
- model.F_Deadline = DateTime.Now.AddHours(timeout);
- string message = "";
- //当工单没有选择指派部门的时候,当前工单类型shezhi指派部门,该工单默认到这个指派的部门
- if (string.IsNullOrEmpty(ToDept))
- {
- //根据工单类别判断 是否有指派部门
- List<Model.T_Sys_GongDan> gd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int deptid = listgd.First().F_AutoDept!=null? listgd.First().F_AutoDept.Value:0;
- if (deptid == 0)
- {
- return Error("当前工单类型没有设置指派部门,请前往设置或者选择指派部门");
- }
- else
- ToDept = deptid.ToString();
- }
- if (!string .IsNullOrEmpty (ToUserCode))
- {
- model.F_Maintenancer = ToUserCode;
- message = "转派工单给" + GetDeptModel(ToDept) + "部门" + GetUserModel(ToUserCode);
- }
- else
- {
- //部门下没有人员不可进行转派
- var usercount = new Bll.T_Sys_UserAccount().GetModelList("F_DeptId='" + ToDept + "' and F_DeleteFlag=0 ");
- if (usercount == null || usercount.Count == 0)
- {
- return Error("当前部门没有人员 ,不可进行转派");
- }
- var user = GetBeOnDuty(ToDept);
- if (user!=null && user.Count >1)
- {
- model.F_Maintenancer = user[0];
- message = user[1];
- }
- else
- {
- return Error("请选择指派人员");
- }
- }
- model.F_MaintenanceDept = ToDept;
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
- model.F_UpdateTime = DateTime.Now;
- AddOperatorLog(message, (int)EnumOperatorType.assign, WorkOrderCode);
- baseBll.Update(model);
- return Success("转派成功");
- }
- return Error("暂时没有权限操作");
- }
-
-
- /// <summary>
- /// 自动评价
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult Evaluate()
- {
- var dicvalue = new Bll.T_Sys_DictionaryValue().
- GetModelList("F_DictionaryFlag='PJSX' and F_State=1");
- int SX = 2;
- try
- {
- if (dicvalue != null && dicvalue.Count > 0)
- {
- SX = int.Parse(dicvalue.FirstOrDefault().F_Name);
- }
- }
- catch
- {
- SX = 2;
- }
- var FaultRepair_Base = new BLL.T_FaultRepair_Base().GetModelList(" F_WorkOrderState=3 and F_IsDelete=0 " +
- "and datediff(minute , F_Endtime , getdate())>'" + SX *60+ "'");
- if (FaultRepair_Base != null && FaultRepair_Base.Count > 0)
- {
- foreach (var model in FaultRepair_Base)
- {
- Model.T_FaultRepair_Evaluate evamodel = new Model.T_FaultRepair_Evaluate();
- if (model != null)
- {
-
- evamodel.F_EvaluateContent = SX+ "小时未评价自动评价满意";
- evamodel.F_Quality = 5;
- evamodel.F_Attitude = 5;
- evamodel.F_Efficiency = 5;
- evamodel.F_Evaluator = "";
- evamodel.F_EvaluationTime = DateTime.Now;
- evamodel.F_Isdelete = 0;
- evamodel.F_WorkOrderCode = model.F_WorkOrderCode ;
- BLL.T_FaultRepair_Evaluate evabll = new BLL.T_FaultRepair_Evaluate();
- if (evabll.Add(evamodel) > 0)
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.finish;
- model.F_UpdateTime = DateTime.Now;
- model.F_Score =15;
- baseBll.Update(model);
- AddEvaluateOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, model.F_WorkOrderCode);
- #region 评价的时候如果有协作工单,协作工单评价数据和主工单保持一致,同时需要记录操作流程
- if (!string.IsNullOrEmpty(model.F_InternalWorkOrderCode))
- {
-
- string[] codes = model.F_InternalWorkOrderCode.Split(',');
- foreach (string item in codes)
- {
- Model.T_FaultRepair_Evaluate evamodel1 = new Model.T_FaultRepair_Evaluate();
- evamodel1 = evamodel;
- evamodel.F_WorkOrderCode = item;
- evabll.Add(evamodel1);
- AddEvaluateOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, item);
- }
- }
- if (!string.IsNullOrEmpty(model.F_ExternalWorkOrderCode))
- {
- string[] codes = model.F_ExternalWorkOrderCode.Split(',');
- foreach (string item in codes)
- {
- Model.T_FaultRepair_Evaluate evamodel1 = new Model.T_FaultRepair_Evaluate();
- evamodel1 = evamodel;
- evamodel.F_WorkOrderCode = item;
- evabll.Add(evamodel1);
- AddEvaluateOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, item);
- }
- }
- #endregion
- }
- else
- continue;
-
- }
- }
- }
- return Success ("评价完成");
- }
- public bool AddEvaluateOperatorLog(string content, int type, string workordercode)
- {
- Model.T_FaultRepair_OperationLog model = new Model.T_FaultRepair_OperationLog();
- model.F_LogContent = content;
- model.F_OperationTime = DateTime.Now;
- model.F_OperationType = type;
- model.F_Operator = "";
- model.F_WorkOrderCode = workordercode;
- logBll.Add(model);
- return true;
- }
- /// <summary>
- /// 自动流转
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult Automatic()
- {
-
- var dicvalue = new Bll.T_Sys_DictionaryValue().
- GetModelList("F_DictionaryFlag='JDSX' and F_State=1");
- string SX = "10";
- if (dicvalue!=null && dicvalue.Count >0)
- {
- SX = dicvalue.FirstOrDefault ().F_Name;
- }
- var FaultRepair_Base = new BLL.T_FaultRepair_Base().GetModelList(" F_WorkOrderState=1and F_IsDelete=0 " +
- "and datediff(minute , F_AssignTime , getdate())>'"+ SX + "'");
- var GroupClass1 = new Bll.T_Sys_GroupClass().GetModelList("F_IsDelete=0 and F_IsAutomatic=1 and datediff(day , F_Date , getdate())= 0 " +
- " order by F_Id asc");
- if (FaultRepair_Base !=null && FaultRepair_Base.Count >0)
- {
- foreach (var model in FaultRepair_Base)
- {
- model.F_AssignTime = DateTime.Now;
- model.F_AssignUser = User.F_UserCode;
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int timeout = listgd.First().F_TimeOut;
- model.F_Deadline = DateTime.Now.AddHours(timeout);
- string user = "";
- var GroupClass = GroupClass1.Where(x => x.F_DeptId.ToString () == model.F_MaintenanceDept)
- .OrderBy (x=>x.F_Id );
- if (GroupClass != null && GroupClass.Count() > 1)
- {
- var Class = GroupClass.Where(x => x.F_State == 1);
- if (Class != null && Class.Count() > 0)
- {
- var Class1 = GroupClass.Where(x => x.F_State == 0 && x.F_Id > Class.LastOrDefault().F_Id);
- if (Class1 != null && Class1.Count() > 0)
- {
- user = Class1.FirstOrDefault().F_UserCode;
- Class1.FirstOrDefault().F_State = 1;
- new Bll.T_Sys_GroupClass().Update(GroupClass.FirstOrDefault ());
- Class.LastOrDefault().F_State = 0;
- new Bll.T_Sys_GroupClass().Update(Class.LastOrDefault());
- }
- else
- {
- user = GroupClass.FirstOrDefault().F_UserCode;
- GroupClass.FirstOrDefault().F_State = 1;
- new Bll.T_Sys_GroupClass().Update(GroupClass.FirstOrDefault());
- Class.LastOrDefault().F_State = 0;
- new Bll.T_Sys_GroupClass().Update(Class.LastOrDefault());
- }
- }
- else
- {
- user = GroupClass.FirstOrDefault().F_UserCode;
- GroupClass.FirstOrDefault().F_State = 1;
- new Bll.T_Sys_GroupClass().Update(GroupClass.FirstOrDefault());
- }
- }
- else
- {
- continue;
- }
- model.F_Maintenancer = user;
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
- model.F_UpdateTime = DateTime.Now;
- AddOperatorLog("超十分钟未接单,自动流转给" + GetDeptModel(model.F_MaintenanceDept) + "部门" + GetUserModel(user), (int)EnumOperatorType.assign, model.F_WorkOrderCode );
- baseBll.Update(model);
- }
- }
- return Success("");
- }
-
- /// <summary>
- /// 获取值班人员
- /// </summary>
- /// <param name="ToDept"></param>
- /// <returns></returns>
- private List <string > GetBeOnDuty(string ToDept)
- {
- List<string> user = new List<string>();
- var role = new Bll.T_Sys_Role().GetModelList("F_RoleCode='WXBZZ' and F_State =1");
- var GroupClass = new Bll.T_Sys_GroupClass().GetModelList("F_IsDelete=0 and F_IsAutomatic=1 and datediff(day , F_Date , getdate())= 0 " +
- "and F_DeptId='" + ToDept + "' order by F_Id asc");
- if (GroupClass != null && GroupClass.Count > 0)
- {
- if (GroupClass.Count==1)
- {
- user.Add ( GroupClass[0].F_UserCode);
- user.Add("有值班人员,自动流转给" + GetDeptModel(ToDept) + "部门" + GetUserModel(GroupClass[0].F_UserCode));
- }
- else
- {
- var Class = GroupClass.Where(x => x.F_State == 1);
- if (Class!=null && Class.Count() > 0)
- {
- var Class1 = GroupClass.Where(x => x.F_State == 0&& x .F_Id > Class.LastOrDefault ().F_Id);
- if (Class1!=null && Class1.Count()>0)
- {
- user.Add (Class1.FirstOrDefault ().F_UserCode);
- user.Add("有值班人员,自动流转给" + GetDeptModel(ToDept) + "部门" + GetUserModel(Class1.FirstOrDefault().F_UserCode));
- Class1.FirstOrDefault().F_State = 1;
- new Bll.T_Sys_GroupClass().Update(GroupClass[0]);
- Class.LastOrDefault().F_State = 0;
- new Bll.T_Sys_GroupClass().Update(Class.LastOrDefault());
- }
- else
- {
- user.Add(GroupClass[0].F_UserCode);
- user.Add("有值班人员,自动流转给" + GetDeptModel(ToDept) + "部门" + GetUserModel( GroupClass[0].F_UserCode));
- GroupClass[0].F_State = 1;
- new Bll.T_Sys_GroupClass().Update(GroupClass[0]);
- Class.LastOrDefault().F_State = 0;
- new Bll.T_Sys_GroupClass().Update(Class.LastOrDefault());
- }
- }
- else
- {
-
- user.Add(GroupClass[0].F_UserCode);
- user.Add("有值班人员,自动流转给" + GetDeptModel(ToDept) + "部门" + GetUserModel(GroupClass[0].F_UserCode));
- GroupClass[0].F_State = 1;
- new Bll.T_Sys_GroupClass().Update(GroupClass[0]);
- }
- }
- }
- else
- {
- if (role!=null && role.Count >0)
- {
- var userzz = new Bll.T_Sys_UserAccount().GetModelList("F_DeptId='" + ToDept + "' and F_DeleteFlag=0 " +
- "and F_RoleId = '" + role.FirstOrDefault().F_RoleId + "'");
- if (userzz != null && userzz.Count > 0)
- {
- user.Add(userzz.FirstOrDefault().F_UserCode);
- user.Add("无值班人员,派送给" + GetDeptModel(ToDept) + "部门" + userzz.FirstOrDefault().F_UserName);
- }
- else
- {
- //无值班人员无班组长,随机派送
- var userww = new Bll.T_Sys_UserAccount().GetModelList("F_DeptId='" + ToDept + "' and F_DeleteFlag=0 ");
- user.Add(userww.FirstOrDefault().F_UserCode);
- user.Add("无值班人员无班组长,随机派送给" + GetDeptModel(ToDept) + "部门" + userww.FirstOrDefault().F_UserName);
- }
- }
- }
- return user;
- }
- //删除工单
- public ActionResult DeleteWorkOrder(string WorkOrderCode)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- model.F_IsDelete = 1;
- if (baseBll.Update(model))
- {
- AddOperatorLog("删除了工单", (int)EnumOperatorType.delete, WorkOrderCode);
- return Success("删除成功");
- }
-
- else
- return Error("删除失败");
- }
- // 返修 是申请人提交的返修
- //退回至维修部门班组长(角色),如果没有该角色退回到原来的处理人
- public ActionResult ReturnWorkOrder(string WorkOrderCode, string ReturnReason)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- if (model != null && model.F_ApplicationDept==User.F_DeptId.ToString())
- {
- //判断返工是不是规定的时间内,工单状态是已完结的工单
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int limittime = listgd.First().F_RepairTimeLimit;
- if (model.F_Endtime.Value.AddHours(limittime) >= DateTime.Now)
- {
- Model.T_FaultRepair_Process promodel = new Model.T_FaultRepair_Process();
- promodel.F_Isdelete = 0;
- promodel.F_MaintenanceDept = User.F_DeptId.ToString();// model.F_MaintenanceDept;
- promodel.F_Maintenancer = User.F_UserCode;// model.F_Maintenancer;
- promodel.F_ReturnReason = ReturnReason;
- promodel.F_WorkOrderCode = WorkOrderCode;
- if (dealBll.Add(promodel) > 0)
- {
- AddOperatorLog("提交了返工", (int)EnumOperatorType.submitreturn, WorkOrderCode);
- string sql = " select top 1 F_UserCode from T_Sys_UserAccount where F_RoleId in (select F_RoleId from T_Sys_Role where F_RoleCode = 'WXBZZ')";
- string usercode= DbHelperSQL.GetSingle(sql).ToString();
- if (!string.IsNullOrEmpty(usercode))
- {
- model.F_Maintenancer = usercode;
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.dealing;
- model.F_ReturnNum += model.F_ReturnNum + 1;
- model.F_UpdateTime = DateTime.Now;
- baseBll.Update(model);
- return Success("返工成功");
- }
- return Error("返工失败");
- }
- else
- {
- return Error("已超出提交返修期限");
- }
- }
- return Error("暂时没有权限操作");
- }
- //评价
- public ActionResult EvaluateWorkOrder(string WorkOrderCode, int Attitude, int Quality, int Efficiency,string EvaluateContent )
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
- Model.T_FaultRepair_Evaluate evamodel = new Model.T_FaultRepair_Evaluate();
- if (model != null)
- {
- if (model.F_ApplicationDept.Trim() == User.F_DeptId.ToString())
- {
- evamodel.F_EvaluateContent = EvaluateContent;
- evamodel.F_Quality = Quality;
- evamodel.F_Attitude = Attitude;
- evamodel.F_Efficiency = Efficiency;
- evamodel.F_Evaluator = User.F_UserCode;
- evamodel.F_EvaluationTime = DateTime.Now;
- evamodel.F_Isdelete = 0;
- evamodel.F_WorkOrderCode = WorkOrderCode;
- BLL.T_FaultRepair_Evaluate evabll = new BLL.T_FaultRepair_Evaluate();
- if (evabll.Add(evamodel) > 0)
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.finish;
- model.F_UpdateTime = DateTime.Now;
- model.F_Score = Attitude + Quality+ Efficiency;
- baseBll.Update(model);
- AddOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, model.F_WorkOrderCode);
- #region 评价的时候如果有协作工单,协作工单评价数据和主工单保持一致,同时需要记录操作流程
- if (!string.IsNullOrEmpty(model.F_InternalWorkOrderCode))
- {
- string[] codes = model.F_InternalWorkOrderCode.Split(',');
- foreach (string item in codes)
- {
- Model.T_FaultRepair_Evaluate evamodel1 = new Model.T_FaultRepair_Evaluate();
- evamodel1 = evamodel;
- evamodel.F_WorkOrderCode = item;
- evabll.Add(evamodel1);
- AddOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, item);
- }
- }
- if (!string.IsNullOrEmpty(model.F_ExternalWorkOrderCode))
- {
- string[] codes = model.F_ExternalWorkOrderCode.Split(',');
- foreach (string item in codes)
- {
- Model.T_FaultRepair_Evaluate evamodel1 = new Model.T_FaultRepair_Evaluate();
- evamodel1 = evamodel;
- evamodel.F_WorkOrderCode = item;
- evabll.Add(evamodel1);
- AddOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, item);
- }
- }
- #endregion
- return Success("评价成功");
- }
- return Error("评价失败");
- }
- else
- {
- return Error("没有权限评价");
- }
- }
- return Error("评价失败");
- }
- /// <summary>
- /// 获取枚举值的描述属性
- /// </summary>
- /// <param name="enumValue"></param>
- /// <returns></returns>
- private string GetEnumDescription(Enum enumValue)
- {
- string value = enumValue.ToString();
- FieldInfo field = enumValue.GetType().GetField(value);
- object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //获取描述属性
- if (objs == null || objs.Length == 0) //当描述属性没有时,直接返回名称
- return value;
- DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
- return descriptionAttribute.Description;
- }
- #region 添加操作记录
- public bool AddOperatorLog(string content,int type,string workordercode)
- {
- Model.T_FaultRepair_OperationLog model = new Model.T_FaultRepair_OperationLog();
- model.F_LogContent = content;
- model.F_OperationTime = DateTime.Now;
- model.F_OperationType = type;
- model.F_Operator = User.F_UserCode;
- model.F_WorkOrderCode = workordercode;
- logBll.Add(model);
- return true;
- }
- public void AddAddlog(string workordercode)
- {
- AddOperatorLog("创建报修工单", (int)EnumOperatorType.add, workordercode);
- }
- public void AddAssignlog(string workordercode,string dept, string maintenancer)
- {
- AddOperatorLog("指派工单给" + GetDeptModel(dept)+"部门"+ GetUserModel(maintenancer), (int)EnumOperatorType.assign, workordercode);
-
- }
- public void AddInternalasslog(string workordercode, string newworkordercode)
- {
-
- AddOperatorLog("创建内协作工单" + newworkordercode, (int)EnumOperatorType.internalassistance, workordercode);
- }
- public void AddExternalasslog(string workordercode, string newworkordercode)
- {
- AddOperatorLog("创建外协作工单" + newworkordercode, (int)EnumOperatorType.externalassistance, workordercode);
-
- }
- #endregion
- public string GetDeptModel( string deptId = "")
- {
- string sql = " 1=1 ";
-
- if (!string.IsNullOrWhiteSpace(deptId))
- {
- sql += " and F_DeptId='" + deptId + "'";
- }
- if (string.IsNullOrWhiteSpace(sql))
- return "";
- var role = departmentBLL.GetModelList(sql).FirstOrDefault();
- string name = role.F_DeptName;
- return name;
- }
- public string GetUserModel( string usercode = "")
- {
- string sql = " 1=1 ";
-
- if (!string.IsNullOrWhiteSpace(usercode))
- {
- sql += " and F_UserCode='" + usercode + "'";
- }
- if (string.IsNullOrEmpty(usercode) )
- return "";
- Model.T_Sys_UserAccount ua = new Bll.T_Sys_UserAccount().GetModelList(sql).FirstOrDefault();
- if (ua != null)
- {
- return ua.F_UserName;
-
- }
-
- return "";
-
- }
- //故障报修综合报表
- public ActionResult ExportList()
- {
- string sql = " and F_IsDelete=0 ";
- int isexport = RequestString.GetInt("isexport", -1);
- string strpageindex = RequestString.GetQueryString("page");
- int pageindex = 1;
- string strpagesize = RequestString.GetQueryString("pagesize");
- int pagesize = 10;
-
-
- //创建时间 报修人 工单类别 工单状态 维修人 调度人
- string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
- string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
- int category = RequestString.GetInt("category", -1);
-
- int strstate = RequestString.GetInt("state", -1);
-
- string applicant= HttpUtility.UrlDecode(RequestString.GetQueryString("applicant"));
- string maintenancer = HttpUtility.UrlDecode(RequestString.GetQueryString("maintenancer"));
-
- string createuser= HttpUtility.UrlDecode(RequestString.GetQueryString("createuser"));
- Bll.T_Sys_UserAccount blluser = new Bll.T_Sys_UserAccount();
- List<Model.T_Sys_UserAccount> listuser = blluser.GetModelList("F_DeleteFlag=0");
- if (!string.IsNullOrEmpty(createuser))
- {
- try
- {
- int usercode= Convert.ToInt32(createuser);
- sql += " and F_AssignUser='" + usercode + "'";
- }
- catch (Exception)
- {
- Model.T_Sys_UserAccount model = listuser.Find(x => x.F_UserName == createuser);
- if (model != null)
- {
- sql += " and F_AssignUser='" + model.F_UserCode + "'";
- }
- }
- }
- if (!string.IsNullOrEmpty(maintenancer))
- {
- try
- {
- int usercode = Convert.ToInt32(maintenancer);
- sql += " and F_Maintenancer='" + usercode + "'";
- }
- catch (Exception)
- {
- Model.T_Sys_UserAccount model = listuser.Find(x => x.F_UserName == maintenancer);
- if (model != null)
- {
- sql += " and F_Maintenancer='" + model.F_UserCode + "'";
- }
- }
- }
- if (!string.IsNullOrEmpty(applicant))
- {
- try
- {
- int usercode = Convert.ToInt32(applicant);
- sql += " and F_Applicant='" + usercode + "'";
- }
- catch (Exception)
- {
- Model.T_Sys_UserAccount model = listuser.Find(x => x.F_UserName == applicant);
- if (model != null)
- {
- sql += " and F_Applicant='" + model.F_UserCode + "'";
- }
- }
- }
- #region 搜索条件
- if (strpageindex.Trim() != "")
- {
- pageindex = Convert.ToInt32(strpageindex);
- }
- if (strpagesize.Trim() != "")
- {
- pagesize = Convert.ToInt32(strpagesize);
- }
-
- if (strstarttime.Trim() != "" && strstarttime != "undefined")
- {
- if (strendtime.Trim() != "" && strendtime != "undefined")
- {
- sql += " and F_CreateTime between '" + strstarttime +
- "' AND '" + strendtime + "'";
- }
- else
- {
- sql += " and F_CreateTime>='" + strstarttime + "' ";
- }
- }
- else
- {
- if (strendtime.Trim() != "" && strendtime != "undefined")
- {
- sql += " and F_CreateTime<='" + strendtime + "' ";
- }
- }
- #endregion
- if (strstate > 0)
- {
- sql += " and F_WorkOrderState='"+strstate+"'";
- }
- if (category > 0)
- {
- sql += " and F_WorkOrderCategory='" + category + "'";
- }
- int recordCount = 0;
- if (isexport==1)
- {
- //执行时限 服务评价
- string exportsql = "select F_WorkOrderCode 工单编号,F_CreateTime 创建时间,dbo.GetDepName (F_ApplicationDept) 报工科室,[dbo].[GetUserName](F_Applicant) 报修人,F_WorkOrderCategory 工单类别, F_Content 工单内容,(case F_WorkOrderState when 0 then '新工单' when 1 then '待查收'when 2 then '待完成'when 3 then '已处理'when 4 then '异常完结'when 5 then '已完结' when 6 then '已到达' else '' end ) 工单状态,[dbo].[GetUserName](F_Maintenancer) 维修员,F_Endtime 维修时间,dbo.[GetConvertSecond](DATEDIFF(ss,F_CreateTime,F_Endtime)) 工单耗时,[dbo].[GetGapTime](F_Deadline,F_CreateTime,F_Endtime,F_IsStop,F_StopTime) 执行时限, F_Score 服务评价,dbo.GetUserName(F_AssignUser) 调度人 from T_FaultRepair_Base where 1=1" + sql;
- var dtdc = DbHelperSQL.Query(exportsql).Tables[0];
- var msg = new NPOIHelper().ExportToExcel("故障报修综合报表", dtdc);
- if (msg == "")
- {
- return Success("导出成功");
- }
- else
- {
- return Error("导出失败");
- }
- }
- DataTable datatable = Bll.PagerBll.GetListPager
- ("T_FaultRepair_Base ",
- "F_WorkOrderId",
- "F_WorkOrderId,F_WorkOrderCode ,F_CreateTime ,dbo.GetDepName(F_ApplicationDept) deptname ,[dbo].[GetUserName](F_Applicant) applicantname ,F_WorkOrderCategory , F_Content ,(case F_WorkOrderState when 0 then '新工单' when 1 then '待查收'when 2 then '待完成'when 3 then '已处理'when 4 then '异常完结'when 5 then '已完结' when 6 then '已到达' else '' end ) workorderstatename,[dbo].[GetUserName](F_Maintenancer) maintenancer,F_Endtime ,dbo.[GetConvertSecond](DATEDIFF(ss,F_CreateTime,F_Endtime)) spendtime ,[dbo].[GetGapTime](F_Deadline,F_CreateTime,F_Endtime,F_isStop,F_StopTime) gaptime , F_Score ,dbo.GetUserName(F_AssignUser) createname",
- sql,
- "order by F_WorkOrderId desc",
- pagesize,
- pageindex,
- true,
- out recordCount
- );
- var obj = new
- {
- state = "success",
- message = "成功",
- rows = datatable,
- total = recordCount
- };
- return Content(obj.ToJson());
- }
- //挂起
- public ActionResult HangUp(string workordercode)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
- if (model != null && model.F_WorkOrderState!=2 && model.F_WorkOrderState != 6)
- {
- return Error("挂起失败");
- }
- model.F_IsStop = 1;
- model.F_StopTime = DateTime.Now;
- baseBll.Update(model);
- AddOperatorLog(User.F_UserCode + "挂起了工单", (int)EnumOperatorType.hangup, model.F_WorkOrderCode);
- return Success("挂起成功");
- }
- //到达操作 arrive
- public ActionResult Arrive(string workordercode)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
- if (model == null)
- {
- return Error("没有获取到工单号");
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.arrive;
- model.F_ArriveTime = DateTime.Now;
- baseBll.Update(model);
- AddOperatorLog(User.F_UserName +"已到达", (int)EnumOperatorType.arrive, model.F_WorkOrderCode);
- return Success("到达操作成功");
- }
- // 退回(工单状态gai为“待提交”)
- public ActionResult ReBack(string workordercode)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
- if (model == null)
- {
- return Error("没有获取到工单号");
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.waitsubmit;
-
- baseBll.Update(model);
- AddOperatorLog(User.F_UserName + "退回了工单", (int)EnumOperatorType.reback, model.F_WorkOrderCode);
- return Success("退回操作成功");
- }
-
- // 撤回(已指派未接单的可进行撤回,工单状态为“待指派”)
- public ActionResult Retract(string workordercode)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
- if (model == null)
- {
- return Error("没有获取到工单号");
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
- model.F_Maintenancer = "";
- model.F_MaintenanceDept = "";
- baseBll.Update(model);
- AddOperatorLog(User.F_UserName + "撤回了工单", (int)EnumOperatorType.retract, model.F_WorkOrderCode);
- return Success("撤回操作成功");
- }
- //综合保障中心里 指派(撤回之后可重新转派),同时需要记录操作流程
- public ActionResult Assign(string workordercode,string maintenancer,string maintenanceDept)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
- if (model == null)
- {
- return Error("没有获取到工单号");
- }
- if (!string.IsNullOrEmpty(maintenanceDept))
- {
- model.F_AssignTime = DateTime.Now;
- model.F_AssignUser = User.F_UserCode;
- List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
- int timeout = listgd.First().F_TimeOut;
- model.F_Deadline = DateTime.Now.AddHours(timeout);
- model.F_MaintenanceDept = maintenanceDept;
- if (!string .IsNullOrEmpty (maintenancer))
- model.F_Maintenancer = maintenancer;
- else
- {
- var user = GetBeOnDuty(maintenancer);
- if (user != null && user.Count > 1)
- {
- model.F_Maintenancer = user[0];
- }
- else
- {
- return Error("请选择指派人员");
- }
- }
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.receive;
-
- }
- baseBll.Update(model);
- AddAssignlog(model.F_WorkOrderCode, maintenanceDept, maintenancer);
-
- return Success("指派操作成功");
- }
- #region 我的提交页面的操作
- //撤回(未指派的工单可撤回,工单状态“待提交”)
- public ActionResult MyRetract(string workordercode)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
- if (model == null)
- {
- return Error("没有获取到工单号");
- }
- if (model.F_WorkOrderState == 0)
- {
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.waitsubmit;
- baseBll.Update(model);
- AddOperatorLog(User.F_UserName + "撤回了工单", (int)EnumOperatorType.myretract, model.F_WorkOrderCode);
- return Success("撤回操作成功");
- }
- else
- {
- return Error("不能撤回");
- }
-
- }
- //我的提交里编辑工单
- /// <summary>
- ///编辑
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public ActionResult MyUpdateFaultRepairWorkOrder(T_FaultRepairBaseinput input)
- {
- Model.T_FaultRepair_Base model = baseBll.GetModel(input.WorkOrderCode);
-
- model.F_WorkOrderCategory = input.WorkOrderCategory;
- model.F_Content = input.Content;
- model.F_PlaceOfRepair = input.PlaceOfRepair;
- model.F_File = input.File;
- model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
- model.F_UpdateTime = DateTime.Now;
- if (baseBll.Update(model))
- {
-
- AddOperatorLog(User.F_UserName+"编辑了工单", (int)EnumOperatorType.update, model.F_WorkOrderCode);
-
- return Success("编辑成功!");
- }
- else return Error("编辑失败!");
- }
- #endregion
- }
- }
|