Exemplo n.º 1
0
        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")));
            }
        }
Exemplo n.º 2
0
        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")));
                }
            }
        }
Exemplo n.º 3
0
        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("")));
        }
Exemplo n.º 4
0
        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")));
            }
        }
Exemplo n.º 5
0
        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());
            }
        }
Exemplo n.º 7
0
        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()));
            }
        }
Exemplo n.º 8
0
        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()));
            }
        }
Exemplo n.º 9
0
        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")));
            }
        }
Exemplo n.º 10
0
        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()));
            }
        }
Exemplo n.º 11
0
        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")));
                }
            }
        }
Exemplo n.º 12
0
 // GET api/values
 //[RequireHttps]
 public IEnumerable <string> Post()
 {
     NotificationController.NotificationCallbackMsg("操作名", "描述");
     return(new string[] { "value1", "value2" });
 }
Exemplo n.º 13
0
        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()));
            }
        }
Exemplo n.º 14
0
        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());
            }
        }
Exemplo n.º 15
0
        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()));
                }
            }
        }
Exemplo n.º 16
0
        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;
            }
        }