public IHttpActionResult PostPatrolOrder(MobilePatrolOrderReciever reciever) { PATROL_LOG patrol_log = new PATROL_LOG() { ID = "0000", PATROL_ID = reciever.id, EQ_ID = reciever.deviceID, PATROL_TIME = reciever.time, PATROL_RESULT = reciever.status.ToString(), PATROL_PICTURE = reciever.imgURL, INSERT_BY = reciever.id, UPDATE_BY = reciever.id, INSERT_TIME = DateTime.Now, UPDATE_TIME = DateTime.Now //EQ_IN_USE = db.EQ_IN_USE.Find(mobilePatrolOrder.deviceID), //PATROL = db.PATROL.Find(mobilePatrolOrder.id) }; try { db.PATROL_LOG.Add(patrol_log); db.SaveChanges(); NotificationController.NotificationCallbackMsg("增", reciever.id + "增加了巡检单"); return(Ok(returnHelper.make("success"))); } catch { return(Ok(returnHelper.make("fail"))); } }
public IHttpActionResult PostWorkOrder(MobileWorkOrderReciever mobileWorkOrderReciever) { var work_order = db.WORK_ORDER.Find(mobileWorkOrderReciever.id); if (work_order == null) { return(Ok(returnHelper.make("fail"))); } else { try { work_order.WORK_PICTURE = mobileWorkOrderReciever.imgURL; work_order.STATUS = mobileWorkOrderReciever.status.ToString(); db.EQ_IN_USE.Find(work_order.EQ_ID).STATUS = "0"; db.SaveChanges(); NotificationController.NotificationCallbackMsg("改", "更改了工单"); return(Ok(returnHelper.make("success"))); } catch { return(Ok(returnHelper.make("fail"))); } } }
public async Task <IHttpActionResult> modifyPassword(passwordModifyDto input) { string id = input.id.Substring(2); var person = await db.STAFF.FindAsync(input.id); person.PASSWORD = input.newPassword; await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg(person.NAME + " 修改密码"); return(Ok(returnHelper.make(""))); }
public IHttpActionResult PutRepairOrder(MobileRepairOrderPutReciever reciever) { var repair_order = db.REPAIR_ORDER.Find(reciever.id); if (repair_order == null) { return(Ok(returnHelper.make("fail"))); } else { repair_order.EQ_ID = reciever.deviceID; repair_order.REPORT_PICTURE = reciever.imgURL; repair_order.DESCRIPTION = reciever.detail; repair_order.TEL_NUMBER = reciever.phone; repair_order.REPAIR_TYPE = reciever.problem_type; repair_order.STATUS = reciever.status.ToString(); db.SaveChanges(); NotificationController.NotificationCallbackMsg("改", "更改了保修单"); return(Ok(returnHelper.make("success"))); } }
public async Task <IHttpActionResult> addEqStored(eqStoredReceiver input) { var type = await db.EQ_TYPE.FirstOrDefaultAsync(e => e.TYPE_NAME == input.name && e.MODEL_NUMBER == input.model); var warehouse = await db.WAREHOUSE.FirstOrDefaultAsync(e => e.NAME == input.warehouse); var result = new EQ_STORED() { PRODUCT_TIME = input.productTime, STATUS = "0", EQ_TYPE_ID = type.ID, WAREHOUSE_ID = warehouse.ID, ID = "placeHolder" }; db.EQ_STORED.Add(result); await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("增", "新增器材" + result.ID + " 种类" + input.name + " " + input.model + " 所在仓库" + input.warehouse); return(await GetEqStored()); }
public async Task <IHttpActionResult> addAccessory(addAccessoryReceiver input) { WAREHOUSE targetWarehouse; try { targetWarehouse = await db.WAREHOUSE.FirstAsync(e => e.NAME == input.warehouse); if (targetWarehouse == null) { throw new ApplicationException(); } var AccessoriesInTarget = await db.ACCESSORY_STORED.FirstOrDefaultAsync(e => e.WAREHOUSE_ID == targetWarehouse.ID && e.ACCESSORY_ID == input.accessoryID.Substring(2)); if (AccessoriesInTarget == null) { db.ACCESSORY_STORED.Add( new ACCESSORY_STORED { ACCESSORY_ID = input.accessoryID.Substring(2), QUANTITY = input.num, WAREHOUSE_ID = targetWarehouse.ID, }); } else { AccessoriesInTarget.QUANTITY += input.num; } await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("新增零件" + input.accessoryID + "到" + input.warehouse); return(Ok()); } catch (Exception) { return(BadRequest()); } }
public async Task <IHttpActionResult> deleteStaffSheetRow(stringReceiver sR) { string id = sR.decoded(); try { var staff = await db.STAFF.FindAsync(id); if (staff == null || staff.IS_SUPER != "0") { throw new Exception(); } staff.IS_SUPER = "-1"; await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("开除员工" + " 编号" + staff.ID); return(Ok(returnHelper.make(getDtoList()))); } catch (Exception) { return(Ok(returnHelper.fail())); } }
public async Task <IHttpActionResult> DeleteCheckSheet(stringReceiver sR) { try { string id = sR.decoded(); PATROL_LOG patrol_log = await db.PATROL_LOG.FindAsync(id); if (patrol_log == null) { throw new ApplicationException(); } db.PATROL_LOG.Remove(patrol_log); await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("删", "巡检单" + sR.decoded()); var checkSheets = GetCheckSheets().data.ToList(); return(Ok(returnHelper.make(checkSheets))); } catch (Exception) { return(Ok(returnHelper.fail())); } }
public IHttpActionResult PostRepairOrder(MobileRepairOrderPutReciever mobileRepairOrderReciever) { var eq = db.EQ_IN_USE.Find(mobileRepairOrderReciever.deviceID); if (eq.STATUS == "1") { return(Ok(returnHelper.make("fail2"))); } REPAIR_ORDER repair_order = new REPAIR_ORDER() { ID = "0000",//因为数据库中有自增的触发器,所以ID可以随意输入任意字符串 REPORT_PICTURE = mobileRepairOrderReciever.imgURL, REPAIR_TYPE = mobileRepairOrderReciever.problem_type, DESCRIPTION = mobileRepairOrderReciever.detail, STATUS = mobileRepairOrderReciever.status.ToString(), TEL_NUMBER = mobileRepairOrderReciever.phone, EQ_ID = mobileRepairOrderReciever.deviceID, DISPATCHER_ID = "", INSERT_BY = mobileRepairOrderReciever.id, UPDATE_BY = mobileRepairOrderReciever.id, INSERT_TIME = DateTime.Now, UPDATE_TIME = DateTime.Now }; try { db.REPAIR_ORDER.Add(repair_order); eq.STATUS = "1"; db.SaveChanges(); NotificationController.NotificationCallbackMsg("增", mobileRepairOrderReciever.id + "添加了保修单"); return(Ok(returnHelper.make("success"))); } catch (Exception) { return(Ok(returnHelper.make("fail"))); } }
public async Task <IHttpActionResult> deleteWorkSheet(stringReceiver sR) { string id = sR.decoded(); try { WORK_ORDER wORK_ORDER = await db.WORK_ORDER.FindAsync(id); if (wORK_ORDER == null) { throw new ApplicationException(); } db.WORK_ORDER.Remove(wORK_ORDER); await db.SaveChangesAsync(); var workSheets = GetWorkSheets().data.ToList(); NotificationController.NotificationCallbackMsg("删除工单" + sR.decoded()); return(Ok(returnHelper.make(workSheets))); } catch (Exception) { return(Ok(returnHelper.fail())); } }
public IHttpActionResult DeleteRepairOrder(MobileRepairOrderDeleteReciever reciever) { var repair_order = db.REPAIR_ORDER.Find(reciever.id); if (repair_order == null) { return(Ok(returnHelper.make("fail"))); } else { try { NotificationController.NotificationCallbackMsg("删", repair_order.INSERT_BY + "删除了保修单"); db.EQ_IN_USE.Find(repair_order.EQ_ID).STATUS = "0"; db.REPAIR_ORDER.Remove(repair_order); db.SaveChanges(); return(Ok(returnHelper.make("success"))); } catch { return(Ok(returnHelper.make("fail"))); } } }
// GET api/values //[RequireHttps] public IEnumerable <string> Post() { NotificationController.NotificationCallbackMsg("操作名", "描述"); return(new string[] { "value1", "value2" }); }
public async Task <IHttpActionResult> scehduleRepairSheet(repairSheetReceiver input) { try { input.stfId = input.stfId.Substring(2); input.RSTid = input.RSTid.Substring(2); //since staff id is not prefixed when logging in //there's no need to decode DSTid //input.DSTid = input.DSTid.Substring(2); var dispatcher = db.STAFF.Find(input.DSTid); var repairSheet = await db.REPAIR_ORDER.FindAsync(input.RSTid); if (repairSheet == null) { throw new Exception(); } db.Entry(repairSheet).Reference(e => e.EQ_IN_USE).Load(); var oldEq = repairSheet.EQ_IN_USE; oldEq.STATUS = "1"; // 1: broken 0: normal decimal?[] oldEqLocation = new decimal?[2] { repairSheet.EQ_IN_USE.LATITUDE, repairSheet.EQ_IN_USE.LONGITUDE }; foreach (var requirement in input.ls) { if (requirement.statue == "器材") { var neededEqType = await db.EQ_TYPE.FirstOrDefaultAsync(e => e.TYPE_NAME == requirement.type && e.MODEL_NUMBER == requirement.model); string neededEqTypeId = neededEqType.ID; var availableList = db.EQ_STORED.Where(e => e.EQ_TYPE_ID == neededEqTypeId).Include(e => e.WAREHOUSE).ToList(); availableList.OrderBy(w => Math.Pow((double)w.WAREHOUSE.LATITUDE - (double)oldEqLocation[0], 2) + Math.Pow((double)w.WAREHOUSE.LONGITUDE - (double)oldEqLocation[1], 2)); var nearest = availableList.First(); db.EQ_STORED.Remove(nearest); } else { var neededAcType = await db.ACCESSORY.FirstOrDefaultAsync(e => e.TYPE_NAME == requirement.type && e.MODEL_NUMBER == requirement.model); string neededAcTypeId = neededAcType.ID; var availableList = db.ACCESSORY_STORED.Where(e => e.ACCESSORY_ID == neededAcTypeId).Include(e => e.WAREHOUSE).ToList(); availableList.OrderBy(w => Math.Pow((double)w.WAREHOUSE.LATITUDE - (double)oldEqLocation[0], 2) + Math.Pow((double)w.WAREHOUSE.LONGITUDE - (double)oldEqLocation[1], 2)); var deleteAcStoreList = new List <ACCESSORY_STORED>(); int unsolved = int.Parse(requirement.number); for (int i = 0; i != availableList.Count(); ++i) { if (availableList[i].QUANTITY > unsolved) { availableList[i].QUANTITY -= unsolved; unsolved = 0; break; } else if (availableList[i].QUANTITY == unsolved) { db.ACCESSORY_STORED.Remove(availableList[i]); unsolved = 0; break; } else { unsolved -= availableList[i].QUANTITY; db.ACCESSORY_STORED.Remove(availableList[i]); } } if (unsolved != 0) { throw new Exception(); } } } var workSheet = new WORK_ORDER { ID = "0", DISPATCHER_ID = dispatcher.ID, EQ_ID = repairSheet.EQ_ID, INSERT_TIME = DateTime.Now, INSERT_BY = dispatcher.ID, UPDATE_BY = dispatcher.ID, UPDATE_TIME = DateTime.Now, REPAIRER_ID = input.stfId, WORK_PICTURE = repairSheet.REPORT_PICTURE, STATUS = "0" }; db.WORK_ORDER.Add(workSheet); repairSheet.STATUS = "2"; await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("维修器件" + repairSheet.EQ_ID); return(Ok(returnHelper.make(""))); } catch (Exception ex) { return(Ok(returnHelper.fail())); } }
public async Task <IHttpActionResult> dispatchAccessory(ACCESSORYDispatchReceiver input) { WAREHOUSE originalWarehouse; WAREHOUSE targetWarehouse; try { input.id = input.id.Substring(2); originalWarehouse = await db.WAREHOUSE.FirstAsync(e => e.NAME == input.from); targetWarehouse = await db.WAREHOUSE.FirstAsync(e => e.NAME == input.to); if (originalWarehouse == null || targetWarehouse == null) { throw new ApplicationException(); } if (input.type.ToLower() == "equipment") { var record = await db.EQ_STORED.FindAsync(input.id); if (record == null) { throw new ApplicationException(); } db.Entry(record).Reference(e => e.WAREHOUSE).Load(); if (record.WAREHOUSE.NAME != input.from) { throw new ApplicationException(); } record.WAREHOUSE = targetWarehouse; } else { //origianl record var record = await db.ACCESSORY_STORED.FirstAsync(e => e.ACCESSORY_ID == input.id && e.WAREHOUSE_ID == originalWarehouse.ID); if (record == null || record.QUANTITY < input.num) { throw new ApplicationException(); } //accessories already in target warehouse var AccessoriesInTarget = await db.ACCESSORY_STORED.FirstOrDefaultAsync(e => e.WAREHOUSE_ID == targetWarehouse.ID && e.ACCESSORY_ID == input.id); if (AccessoriesInTarget == null) { db.ACCESSORY_STORED.Add( new ACCESSORY_STORED { ACCESSORY_ID = input.id, QUANTITY = input.num, WAREHOUSE_ID = targetWarehouse.ID, INSERT_TIME = record.INSERT_TIME, INSERT_BY = record.INSERT_BY }); } else { AccessoriesInTarget.QUANTITY += input.num; } //modify record in original warehouse if (record.QUANTITY == input.num) { db.ACCESSORY_STORED.Remove(record); } else { //not sure if the change will be saved to database record.QUANTITY -= input.num; } } await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("调货从 " + input.from + " 到 " + input.to); if (input.type.ToLower() == "equipment") { return(Ok(returnHelper.make(GetStoredEQ(originalWarehouse)))); } else { return(Ok(returnHelper.make(GetStoredAccessories(originalWarehouse)))); } } catch (Exception) { return(BadRequest()); } }
public async Task <IHttpActionResult> addStaff(staffModifyReceiver input) { using (var trans = db.Database.BeginTransaction()) { try { var staff = new STAFF { ID = "1", ID_CARD_NUMBER = input.idCardNumber, INSERT_TIME = DateTime.Now, IS_SUPER = "0", NAME = input.name, PASSWORD = input.password, TEL_NUMBER = input.telNumber, UPDATE_TIME = DateTime.Now, ACCOUNT_ID = input.status == "0" ? "p" : input.status == "1" ? "r" : input.status == "2" ? "d" : "x" }; db.STAFF.Add(staff); db.SaveChanges(); var staffID = db.STAFF.OrderByDescending(s => s.ID).FirstOrDefault().ID; System.Diagnostics.Debug.Write(staffID + "\n"); if (input.status == "0") { var patrol = new PATROL { ID = staffID, PATROL_START = input.startTime, PATROL_STOP = input.endTime }; db.PATROL.Add(patrol); } else if (input.status == "1") { var repairer = new REPAIRER { ID = staffID, }; db.REPAIRER.Add(repairer); } else if (input.status == "2") { var dispatcher = new DISPATCHER { ID = staffID, DISPATCH_START = input.startTime, DISPATCH_STOP = input.endTime }; db.DISPATCHER.Add(dispatcher); } await db.SaveChangesAsync(); trans.Commit(); NotificationController.NotificationCallbackMsg("新增员工" + input.name + " 编号" + staff.ID); return(Ok(new staffAddDto { data = getDtoList(), info1 = "ok", info2 = staff.ACCOUNT_ID })); } catch (Exception e) { trans.Rollback(); System.Diagnostics.Debug.Write(e); return(Ok(returnHelper.fail())); } } }
public async Task <IHttpActionResult> modifyStaff(staffModifyReceiver input) { input.id = input.id.Substring(2); try { var staff = await db.STAFF.FindAsync(input.id); //cannot modify info about a super manager or an expelled if (staff == null || staff.IS_SUPER != "0") { throw new Exception(); } //repeated id if (input.accountID != staff.ACCOUNT_ID) { if (db.STAFF.Count(s => s.ACCOUNT_ID == input.accountID) > 0) { throw new Exception(); } } staff.NAME = input.name; staff.PASSWORD = input.password; staff.TEL_NUMBER = input.telNumber; staff.ID_CARD_NUMBER = input.idCardNumber; staff.UPDATE_TIME = DateTime.Now; await db.Entry(staff).Reference(s => s.REPAIRER).LoadAsync(); await db.Entry(staff).Reference(s => s.REPAIRER).LoadAsync(); await db.Entry(staff).Reference(s => s.REPAIRER).LoadAsync(); string status = ""; if (staff.DISPATCHER != null) { status = "2"; } else if (staff.PATROL != null) { status = "0"; } else if (staff.REPAIRER != null) { status = "1"; } else { throw new Exception(); } if (status == input.status) { if (input.status == "0") { staff.PATROL.PATROL_START = input.startTime; staff.PATROL.PATROL_STOP = input.endTime; } else if (input.status == "2") { staff.DISPATCHER.DISPATCH_START = input.startTime; staff.DISPATCHER.DISPATCH_STOP = input.endTime; } } else { throw new Exception(); } await db.SaveChangesAsync(); NotificationController.NotificationCallbackMsg("修改员工信息 员工姓名" + input.name + " 编号" + input.id); return(Ok(returnHelper.make(getDtoList()))); } catch (Exception e) { //return Ok(returnHelper.fail()); throw; } }