| using Newtonsoft.Json.Linq; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Data; | 
| using System.Linq; | 
| using System.Web; | 
| using System.Web.Http; | 
| using WebAPI.DLL; | 
| using WebAPI.Models; | 
|   | 
| namespace WebAPI.Controllers.SBGL | 
| { | 
|     public class Sb_EquipRepairSendWorkBillController : ApiController | 
|     { | 
|         public DBUtility.ClsPub.Enum_BillStatus BillStatus; | 
|   | 
|         ClsSb_EquipRepairSendWorkBillMain omodel = new ClsSb_EquipRepairSendWorkBillMain(); | 
|         List<ClsSb_EquipRepairSendWorkBillSub> DetailColl = new List<ClsSb_EquipRepairSendWorkBillSub>(); | 
|         ClsSb_EquipRepairSendWorkBill oBill = new ClsSb_EquipRepairSendWorkBill(); | 
|         private json objJsonResult = new json(); | 
|         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|         DataSet ds; | 
|   | 
|         #region 设备维修派工单查询列表 | 
|         [Route("Sb_EquipRepairSendWorkBill/GetEquipRepairSendWorkBillList")] | 
|         [HttpGet] | 
|         public object GetEquipRepairSendWorkBillList(string sWhere,string user) | 
|         { | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("Sb_EquipRepairSendWorkBillList", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无查看权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 string sql = "select * from  h_v_Sb_EquipRepairSendWorkBillList where 1=1 "; | 
|                 if (sWhere == "" || sWhere == null) | 
|                 { | 
|                     ds = oCN.RunProcReturn(sql+ " order by hmainid desc ", "h_v_Sb_EquipRepairSendWorkBillList"); | 
|                 } | 
|                 else | 
|                 { | 
|                     ds = oCN.RunProcReturn(sql + sWhere+ " order by hmainid desc ", "h_v_Sb_EquipRepairSendWorkBillList"); | 
|                 } | 
|   | 
|                 //if (ds.Tables[0].Rows.Count != 0 || ds != null) | 
|                 //{ | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = ds.Tables[0].Rows.Count; | 
|                 objJsonResult.Message = "Sucess!"; | 
|                 objJsonResult.data = ds.Tables[0]; | 
|                 return objJsonResult; | 
|                 //} | 
|                 //else | 
|                 //{ | 
|                 //objJsonResult.code = "0"; | 
|                 //objJsonResult.count = 0; | 
|                 //objJsonResult.Message = "无数据"; | 
|                 //objJsonResult.data = null; | 
|                 //return objJsonResult; | 
|                 //} | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "Exception" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 设备维修派工单 添加/修改 | 
|         [Route("Sb_EquipRepairSendWorkBill/AddEquipRepairSendWorkBill")] | 
|         [HttpPost] | 
|         public object AddBill([FromBody] JObject sMainSub) | 
|         { | 
|             var _value = sMainSub["sMainSub"].ToString(); | 
|             string msg1 = _value.ToString(); | 
|             oCN.BeginTran(); | 
|             //保存主表 | 
|             objJsonResult = AddBillMain(msg1); | 
|             if (objJsonResult.code == "0") | 
|             { | 
|                 oCN.RollBack(); | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = objJsonResult.Message; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             oCN.Commit(); | 
|             objJsonResult.code = "1"; | 
|             objJsonResult.count = 1; | 
|             objJsonResult.Message = "新增单据成功!"; | 
|             objJsonResult.data = null; | 
|             return objJsonResult; | 
|         } | 
|   | 
|         public json AddBillMain(string msg1) | 
|         { | 
|             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             string msg3 = sArray[1].ToString(); | 
|   | 
|             int hentryid = int.Parse(sArray[2].ToString());//子表的顺序id | 
|             int OperationType = int.Parse(sArray[3].ToString());//数据类型 1添加 3修改 | 
|             string msg4 = sArray[4].ToString(); | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("Sb_EquipRepairSendWorkBill_Edit", 1, false, msg4)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 omodel = Newtonsoft.Json.JsonConvert.DeserializeObject<ClsSb_EquipRepairSendWorkBillMain>(msg2); | 
|                 string BillType = "3909"; | 
|   | 
|   | 
|                 if (OperationType == 1)//新增 | 
|                 { | 
|                     //主表 | 
|                     oCN.RunProc("Insert Into Sb_EquipRepairSendWorkBillMain" + | 
|                "(HBillType,HBillSubType,HInterID,HBillNo,HDate" + | 
|               ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + | 
|               ",HEquipID,HExplanation,HInnerBillNo,HRepairID,HEmpID" + | 
|               ",HManagerID,HDeptID,HRepairContent,HRepairPlanBeginDate,HRepairPlanEndDate" + | 
|               ",HPlanTimes,HCycleUnit" + | 
|               ") " + | 
|               " values('" + BillType + "','" + BillType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" + | 
|               ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" + | 
|               ", " + omodel.HEquipID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "'," + omodel.HRepairID.ToString() + "," + omodel.HEmpID.ToString() + | 
|               "," + omodel.HManagerID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HRepairContent + "','" + omodel.HRepairPlanBeginDate + "','" + omodel.HRepairPlanEndDate + "'" + | 
|               "," + omodel.HPlanTimes.ToString() + ",'" + omodel.HCycleUnit + "'" + | 
|               ") "); | 
|   | 
|                 } | 
|                 else if (OperationType == 3) | 
|                 { | 
|                     //修改 | 
|                     oCN.RunProc("UpDate Sb_EquipRepairSendWorkBillMain set  " + | 
|                     "HDate='" + omodel.HDate + "'" + | 
|                     ",HYear='" + omodel.HYear.ToString() + "'" + | 
|                     ",HPeriod='" + omodel.HPeriod.ToString() + "'" + | 
|                     ",HRemark='" + omodel.HRemark + "'" + | 
|                     ",HUpDater='" + omodel.HUpDater + "'" + | 
|                     ",HUpDateDate=getdate()" + | 
|                     //========================================= | 
|                     ",HEquipID=" + omodel.HEquipID.ToString() + | 
|                     ",HRepairID=" + omodel.HRepairID.ToString() + | 
|                     ",HPlanTimes=" + omodel.HPlanTimes.ToString() + | 
|                     ",HEmpID=" + omodel.HEmpID.ToString() + | 
|                     ",HManagerID=" + omodel.HManagerID.ToString() + | 
|                     ",HDeptID=" + omodel.HDeptID.ToString() + | 
|                     ",HRepairPlanBeginDate='" + omodel.HRepairPlanBeginDate + "'" + | 
|                     ",HRepairPlanEndDate='" + omodel.HRepairPlanEndDate + "'" + | 
|                     ",HRepairContent='" + omodel.HRepairContent + "'" + | 
|                     ",HCycleUnit='" + omodel.HCycleUnit + "'" + | 
|                     ",HExplanation='" + omodel.HExplanation + "'" + | 
|                     ",HInnerBillNo='" + omodel.HInnerBillNo + "'" + | 
|                     " where HInterID=" + omodel.HInterID); | 
|   | 
|                     //删除子表 | 
|                     oCN.RunProc("delete from Sb_EquipRepairSendWorkBillSub where HInterID='" + omodel.HInterID + "' and HEntryID='" + hentryid + "'"); | 
|                 } | 
|                 //保存子表 | 
|                 objJsonResult = AddBillSub(msg3, hentryid); | 
|                 if (objJsonResult.code == "0") | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = objJsonResult.Message; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = null; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|         public json AddBillSub(string msg3, int hentryid) | 
|         { | 
|             DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsSb_EquipRepairSendWorkBillSub>>(msg3); | 
|             int i = 1; | 
|             //插入子表 | 
|             foreach (Models.ClsSb_EquipRepairSendWorkBillSub oSub in DetailColl) | 
|             { | 
|                 oCN.RunProc("Insert into Sb_EquipRepairSendWorkBillSub " + | 
|                        " (HInterID,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark" + | 
|                        ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" + | 
|                        ",HRepairID,HManagerID,HRepairExplanation" + | 
|                        ") values(" | 
|                        + omodel.HInterID.ToString() + "," + (hentryid == -1 ? i : hentryid) + ",'" + oSub.HCloseMan + "'," + oSub.HEntryCloseDate.ToShortDateString() + "," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'" + | 
|                        "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() + | 
|                        "," + oSub.HRepairID.ToString() + "," + oSub.HManagerID.ToString() + ",'" + oSub.HRepairExplanation + "'" + | 
|                        ") "); | 
|                 i++; | 
|             } | 
|   | 
|             objJsonResult.code = "1"; | 
|             objJsonResult.count = 1; | 
|             objJsonResult.Message = null; | 
|             objJsonResult.data = null; | 
|             return objJsonResult; | 
|         } | 
|         #endregion | 
|   | 
|         #region 设备维修派工单 删除 | 
|         [Route("Sb_EquipRepairSendWorkBill/DeleteWorkBill")] | 
|         [HttpGet] | 
|         public object MouldDeleteBill(long HInterID, string User) | 
|         { | 
|             try | 
|             { | 
|                 //判断权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Sb_EquipRepairSendWorkBill_Delete", 1, false, User)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "没有删除权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|   | 
|                 if (oBill.omodel.HChecker != "") | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "单据当前已审核"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 if (oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "删除成功"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "删除失败"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "无权限删除"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 设备维修派工单  审核/反审核 | 
|         [Route("Sb_EquipRepairSendWorkBill/EquipAuditBill")] | 
|         [HttpGet] | 
|         public object EquipAuditBill(int HInterID, int IsAudit, string CurUserName) | 
|         { | 
|             string ModRightNameCheck = "Sb_EquipRepairSendWorkBill_Check"; //该模块的审核功能 | 
|             DBUtility.ClsPub.CurUserName = CurUserName;//存储用户名 | 
|             try | 
|             { | 
|                 ////判断是否有审核权限 | 
|                 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "审核失败!无权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (HInterID <= 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "ID小于0"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 Int64 lngBillKey = 0; | 
|                 lngBillKey = DBUtility.ClsPub.isLong(HInterID);//数据转换 | 
|   | 
|                 //查询审核的数据 | 
|                 ds = oCN.RunProcReturn("select * from Sb_EquipRepairSendWorkBillMain where HInterID='" + HInterID + "'", "Sb_EquipRepairSendWorkBillMain"); | 
|   | 
|                 if (ds.Tables[0].Rows.Count > 0) | 
|                 { | 
|                     var hcloseman = ds.Tables[0].Rows[0]["hcloseman"].ToString();//关闭人 | 
|                     var hdeleteman = ds.Tables[0].Rows[0]["hdeleteman"].ToString();//作废人 | 
|                     var hchecker = ds.Tables[0].Rows[0]["hchecker"].ToString();//审核人 | 
|   | 
|                     if (hcloseman != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "当前单据已关闭,无法审核!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (hdeleteman != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "当前单据已作废,无法审核!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     //IsAudit==0 审核 | 
|                     if (IsAudit == 0) | 
|                     { | 
|                         if (hchecker != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "当前单据已审核,无法再次审核!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     //IsAudit==1 反审核 | 
|                     if (IsAudit == 1) | 
|                     { | 
|                         if (hchecker == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "当前单据未审核,无法反审核!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "单据不存在;原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 //审核提交 | 
|                 if (IsAudit == 0) | 
|                 { | 
|                     if (CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "审核成功!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "审核失败!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 //反审核提交 | 
|                 if (IsAudit == 1) | 
|                 { | 
|                     if (AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "反审核成功!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "反审核失败!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "审核失败或反审核失败" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         //审核 | 
|         public bool CheckBill(Int64 lngBillKey, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 string Hchecker = DBUtility.ClsPub.CurUserName; | 
|                  | 
|                 oCN.BeginTran();//打开事务 | 
|                 oCN.RunProc("update Sb_EquipRepairSendWorkBillMain set HBillStatus=2,hchecker='"+Hchecker+ "',hcheckdate='"+DateTime.Now+ "' where HInterID='"+ lngBillKey + "'"); | 
|                 oCN.Commit();//关闭事务 | 
|                 sReturn = "审核成功!"; | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 throw (e); | 
|             } | 
|         } | 
|         //反审核 | 
|         public bool AbandonCheck(Int64 lngBillKey, ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 string Hchecker = DBUtility.ClsPub.CurUserName; | 
|   | 
|                 oCN.BeginTran();//打开事务 | 
|                 oCN.RunProc("update Sb_EquipRepairSendWorkBillMain set HBillStatus=1,hchecker='',hcheckdate=null where HInterID='" + lngBillKey + "'"); | 
|                 oCN.Commit();//关闭事务 | 
|                 sReturn = "反审核单据成功!"; | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 throw(e); | 
|             } | 
|         } | 
|         #endregion | 
|     } | 
| } |