Esempio n. 1
0
        public static string lnkBtnEditWorkOrderBtnCommand(string commandName, int id, string activeTabName)
        {
            var ser    = new JavaScriptSerializer();
            var result = "";

            switch (commandName)
            {
            case "Edit":
                result = "EditWorkOrder.aspx?id=" + id;

                //deepfryer
                if (activeTabName == "Oil Filtration")
                {
                    result = "EditOilFiltrationWorkOrder.aspx?id=" + id;
                }

                break;

            case "Delete":
                WorkOrderEntity workOrder = new WorkOrderEntity(id);
                workOrder.IsActive = false;
                workOrder.Save();
                break;

            default:
                break;
            }
            return(ser.Serialize(new { Success = true, Path = result }));
        }
Esempio n. 2
0
        public WorkOrderEntity Create(WorkOrderEntity obj)
        {
            var        WorkOrderEntity = new WorkOrderEntity();
            DataSet    ds  = new DataSet();
            bool       res = false;
            SqlCommand cmd = new SqlCommand("WO_spSaveWorkOrder ");

            cmd.CommandType = CommandType.StoredProcedure;
            //cmd.Parameters.AddWithValue("@p_GrnNo", obj.GrnNo);
            cmd.Parameters.AddWithValue("@p_WorkOrderID", obj.WorkOrderID);
            cmd.Parameters.AddWithValue("@p_OrderID", obj.OrderID);
            cmd.Parameters.AddWithValue("@p_ContID", obj.ContID);
            cmd.Parameters.AddWithValue("@p_AssignedDate", obj.AssignedDate);
            cmd.Parameters.AddWithValue("@p_Status", obj.Status);
            cmd.Parameters.AddWithValue("@p_ActionBy", obj.ActionBy);
            cmd.Parameters.AddWithValue("@p_IsActive", obj.IsActive);
            cmd.Parameters.AddWithValue("@p_ExpectedDeliveryDate", obj.ExpectedDeliveryDate);
            cmd.Parameters.AddWithValue("@p_OrderDetails", obj.OrderDetails);
            ds = _unitOfWork.DbLayer.fillDataSet(cmd);
            WorkOrderEntity.getWOSODetails = ds.Tables[0].ConvertDataTableToEntityList <getWOSODetails>();
            //var locMax = _unitOfWork.DbLayer.ExecuteNonQuery(cmd);
            //if (locMax != Int32.MaxValue)
            //{
            //    res = true;
            //}
            return(WorkOrderEntity);
        }
Esempio n. 3
0
        protected void rptAcctWorkOrders_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.IsDataItem())
            {
                WorkOrderEntity workOrder = e.Item.DataItem as WorkOrderEntity;

                Label  lblAppointmentDate = e.Item.FindControl("lblAppointmentDate") as Label;
                Label  lblActionType      = e.Item.FindControl("lblActionType") as Label;
                string time = workOrder.AppointmentTime.HasValue ? workOrder.AppointmentTime.Value.ToShortTimeString() : "";

                lblAppointmentDate.Text = workOrder.AppointmentDate.ToShortDateString() + " " + time;
                WorkOrderServiceLocationEntity wsle = workOrder.WorkOrderServiceLocation.First();

                var recycleservice = from r in _db.RecycleService
                                     where r.WorkOrderServiceLocationId == wsle.WorkOrderServiceLocationId
                                     select r;


                if (recycleservice.Count() > 0)
                {
                    var recycleserviceAction = from ra in _db.RecycleServiceAction
                                               where ra.RecycleServiceId == recycleservice.First().RecycleServiceId
                                               select ra;
                    if (recycleserviceAction.Count() > 0)
                    {
                        RecycleServiceActionEntity ra = recycleserviceAction.First();
                        lblActionType.Text = ra.ActionType;
                        //var bales = ra.Bale.ToList();
                    }
                }
            }
        }
Esempio n. 4
0
        protected void rptWorkOrders_ItemCommand(object sender, RepeaterCommandEventArgs e)
        {
            int workOrderId = Convert.ToInt32(e.CommandArgument.ToString());

            switch (e.CommandName)
            {
            case "Edit":
                Response.Redirect("~/EditWorkOrder.aspx?id=" + e.CommandArgument.ToString());
                break;

            case "Delete":
                WorkOrderEntity workOrder = new WorkOrderEntity(workOrderId);
                workOrder.IsActive = false;
                workOrder.Save();

                populateLists();
                //var q = (from wo in _db.WorkOrder
                //         join a in _db.Account on wo.AccountId equals a.AccountId
                //         where a.IsActive == true
                //         && wo.IsActive == true
                //         orderby wo.AppointmentDate, wo.AppointmentTime, a.Name
                //         select wo);
                ////if (!chkShowCompleted.Checked) q = q.Where(x => !x.IsComplete);
                //var workOrders = q.ToList();

                //rptOilFiltrationWorkOrders.DataSource = workOrders;
                //rptOilFiltrationWorkOrders.DataBind();

                break;

            default:
                break;
            }
        }
 public HttpResponseMessage Create(WorkOrderEntity WOEntity)
 {
     try
     {
         //return _WorkOrderService.Create(WOEntity);
         var Department = _WorkOrderService.Create(WOEntity);
         return(Request.CreateResponse(HttpStatusCode.OK, Department));
     }
     catch (Exception ex)
     {
         throw new ApiDataException(1000, "Category Not Found", HttpStatusCode.NotFound);
     }
 }
Esempio n. 6
0
        /// <summary>
        /// Gets all work orders.
        /// </summary>
        /// <returns>
        /// Get All WorkOrders
        /// </returns>
        public IEnumerable <WorkOrderEntity> GetAllWorkOrders()
        {
            IList <WorkOrderEntity> result        = new List <WorkOrderEntity>();
            IWorkOrderBL            workOrderBL   = new WorkOrderBL();
            List <WorkOrder>        workOrderList = workOrderBL.GetAllWorkOrder();

            foreach (WorkOrder source in workOrderList)
            {
                WorkOrderEntity target = new WorkOrderEntity();
                target.WorkOrderID   = source.WorkOrderID;
                target.Product       = source.Product;
                target.OrderQuantity = source.OrderQty;
                target.DueDate       = source.DueDate;
                result.Add(target);
            }
            return(result);
        }
Esempio n. 7
0
        protected void rptWorkOrders_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.IsDataItem())
            {
                WorkOrderEntity workOrder = e.Item.DataItem as WorkOrderEntity;

                LinkButton lnkBtnEditWorkOrder = e.Item.FindControl("lnkBtnEditWorkOrder") as LinkButton;
                Label      lblDate             = e.Item.FindControl("lblDate") as Label;
                Label      lblAssignedTo       = e.Item.FindControl("lblAssignedTo") as Label;
                //Label lblIsComplete = e.Item.FindControl("lblIsComplete") as Label;
                Label lblDayOfWeek = e.Item.FindControl("lblDayOfWeek") as Label;

                lnkBtnEditWorkOrder.Text = workOrder.Account.Name;
                lblDate.Text             = workOrder.AppointmentDate.ToShortDateString();
                lblDayOfWeek.Text        = workOrder.AppointmentDate.DayOfWeek.ToString();
                //lblIsComplete.Text = workOrder.IsComplete.ToString();
            }
        }
Esempio n. 8
0
        public ActionResult WorkSetSave(string GroupJson, string setJson, string workSet, string workSetName)
        {
            try
            {
                var user          = OperatorProvider.Provider.Current();
                var GroupJsonArry = GroupJson.ToList <WorkDeparmentList>();
                var setJsonnArry  = setJson.ToList <WorksetList>();
                var data          = new List <WorkOrderEntity>();
                var group         = new List <WorkGroupSetEntity>();
                var bookmarks     = Guid.NewGuid().ToString();
                if (workSetName == "常白班")
                {
                    int i = 0;
                    foreach (var item in GroupJsonArry)
                    {
                        bookmarks = Guid.NewGuid().ToString();
                        var setModel = new WorkOrderEntity();
                        setModel.WorkOrderId = Guid.NewGuid().ToString();
                        var setbase = workset.getEntitybySetUp(workSet, user.DeptId);
                        setModel.StartTime     = setbase.StartTime;
                        setModel.EndTime       = setbase.EndTime;
                        setModel.bookmarks     = bookmarks;
                        setModel.isweek        = workSetName == "常白班" ? true : false;
                        setModel.StartTimeSpan = setbase.StartTimeSpan;
                        setModel.EndTimeSpan   = setbase.EndTimeSpan;
                        setModel.WorkName      = workSetName;
                        setModel.OrderSort     = 0;
                        setModel.CreateTime    = DateTime.Now;
                        setModel.useTime       = DateTime.Now;
                        setModel.CreateUserId  = user.UserId;
                        setModel.settingid     = setbase.WorkSettingId;
                        setModel.setupId       = workSet;
                        data.Add(setModel);
                        var setGroupModel = new WorkGroupSetEntity();
                        setGroupModel.workgroupid  = Guid.NewGuid().ToString();
                        setGroupModel.departmentid = item.DepartmentId;
                        setGroupModel.fullname     = item.FullName;
                        //var setGroupbase = data.FirstOrDefault(x => x.OrderSort == i);
                        setGroupModel.groupsort    = data[i].OrderSort;
                        setGroupModel.workorderid  = data[i].WorkOrderId;
                        setGroupModel.CreateTime   = DateTime.Now;
                        setGroupModel.createuserid = user.UserId;
                        setGroupModel.bookmarks    = bookmarks;
                        group.Add(setGroupModel);
                        i++;
                    }
                }
                else
                {
                    foreach (var item in setJsonnArry)
                    {
                        var setModel = new WorkOrderEntity();
                        setModel.WorkOrderId = Guid.NewGuid().ToString();
                        if (item.text != "休息")
                        {
                            var setbase = workset.getEntity(item.value);
                            setModel.StartTime     = setbase.StartTime;
                            setModel.EndTime       = setbase.EndTime;
                            setModel.isweek        = workSetName == "常白班" ? true : false;
                            setModel.StartTimeSpan = setbase.StartTimeSpan;
                            setModel.EndTimeSpan   = setbase.EndTimeSpan;
                            setModel.settingid     = setbase.WorkSettingId;
                        }
                        else
                        {
                            setModel.StartTime     = DateTime.Now;
                            setModel.EndTime       = DateTime.Now;
                            setModel.isweek        = workSetName == "常白班" ? true : false;
                            setModel.StartTimeSpan = 0;
                            setModel.EndTimeSpan   = 0;
                            setModel.settingid     = "0";
                        }
                        setModel.bookmarks    = bookmarks;
                        setModel.WorkName     = item.text;
                        setModel.OrderSort    = item.sort;
                        setModel.CreateTime   = DateTime.Now;
                        setModel.CreateUserId = user.UserId;
                        setModel.useTime      = DateTime.Now;
                        setModel.setupId      = workSet;
                        data.Add(setModel);
                    }
                    foreach (var item in GroupJsonArry)
                    {
                        var setModel = new WorkGroupSetEntity();
                        setModel.workgroupid  = Guid.NewGuid().ToString();
                        setModel.departmentid = item.DepartmentId;
                        setModel.fullname     = item.FullName;
                        var setbase = data.FirstOrDefault(x => x.OrderSort == item.selectValue);
                        setModel.groupsort    = setbase.OrderSort;
                        setModel.workorderid  = setbase.WorkOrderId;
                        setModel.CreateTime   = DateTime.Now;
                        setModel.createuserid = user.UserId;
                        setModel.bookmarks    = bookmarks;
                        group.Add(setModel);
                    }
                }

                workorder.WorkSetSave(data, group, DateTime.Now);
                return(Success("操作成功。"));
            }
            catch (Exception)
            {
                return(Error("操作失败。"));
            }
        }
Esempio n. 9
0
        /// <summary>
        /// 保存按钮事件。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbSave_Click(object sender, EventArgs e)
        {
            if (this.gvBOM.State == GridState.Editing &&
                this.gvBOM.IsEditorFocused &&
                this.gvBOM.EditingValueModified)
            {
                this.gvBOM.SetFocusedRowCellValue(this.gvBOM.FocusedColumn, this.gvBOM.EditingValue);
            }
            this.gvBOM.UpdateCurrentRow();

            string roomName = this.cbFactoryRoom.Text.Trim();

            if (string.IsNullOrEmpty(roomName))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.WIP.LotDispatch.Msg004}"), MESSAGEBOX_CAPTION);//车间名称不能为空
                this.cbFactoryRoom.Select();
                return;
            }

            string workOrderNumber = this.teOrderNumber.Text.Trim();

            if (string.IsNullOrEmpty(workOrderNumber))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg001}"), MESSAGEBOX_CAPTION);//工单号不能为空
                //MessageService.ShowMessage("工单号不能为空。", "提示");
                this.teOrderNumber.Select();
                return;
            }

            string qty = this.teQty.Text.Trim();

            if (string.IsNullOrEmpty(qty))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg002}"), MESSAGEBOX_CAPTION);//工单计划数量不能为空
                //MessageService.ShowMessage("工单计划数量不能为空。", "提示");
                this.teQty.Select();
                return;
            }

            string orderState = Convert.ToString(this.lueOrderState.EditValue);

            if (string.IsNullOrEmpty(orderState))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg003}"), MESSAGEBOX_CAPTION);//工单状态不能为空
                //MessageService.ShowMessage("工单状态不能为空。", "提示");
                this.lueOrderState.Select();
                return;
            }
            string proId = Convert.ToString(this.lueProId.EditValue);
            //if (string.IsNullOrEmpty(proId))
            //{
            //    MessageService.ShowMessage("产品ID不能为空。", "提示");
            //    this.lueProId.Select();
            //    return;
            //}

            string partNumber = this.cmbPartNumber.Text;

            if (string.IsNullOrEmpty(partNumber))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg004}"), MESSAGEBOX_CAPTION);//产品料号不能为空
                //MessageService.ShowMessage("产品料号不能为空。", "提示");
                this.cmbPartNumber.Select();
                return;
            }

            string partDescription = this.tePartDescription.Text;

            if (string.IsNullOrEmpty(partDescription))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg005}"), MESSAGEBOX_CAPTION);//产品描述不能为空
                //MessageService.ShowMessage("产品描述不能为空。", "提示");
                this.tePartDescription.Select();
                return;
            }

            string revenueType = this.cmbRevenueType.Text.Trim();

            if (string.IsNullOrEmpty(revenueType))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg006}"), MESSAGEBOX_CAPTION);//保税手册号不能为空
                //MessageService.ShowMessage("保税手册号不能为空。", "提示");
                this.cmbRevenueType.Select();
                return;
            }


            string orderType = this.cmbOrderType.Text.Trim();

            if (string.IsNullOrEmpty(orderType))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg007}"), MESSAGEBOX_CAPTION);//工单类型不能为空
                //MessageService.ShowMessage("工单类型不能为空。", "提示");
                this.cmbOrderType.Select();
                return;
            }

            string priority = this.cmbPriority.Text.Trim();

            if (string.IsNullOrEmpty(priority))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg008}"), MESSAGEBOX_CAPTION);//工单优先级不能为空
                //MessageService.ShowMessage("工单优先级不能为空。", "提示");
                this.cmbPriority.Select();
                return;
            }

            string startTime = this.deStartDateTime.Text.Trim();

            if (string.IsNullOrEmpty(startTime))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg009}"), MESSAGEBOX_CAPTION);//工单开始时间不能为空
                //MessageService.ShowMessage("工单开始时间不能为空。", "提示");
                this.deStartDateTime.Select();
                return;
            }

            string endTime = this.deEndDateTime.Text.Trim();

            if (string.IsNullOrEmpty(endTime))
            {
                MessageService.ShowMessage(StringParser.Parse("${res:FanHai.Hemera.Addins.SAP.WorkOrderManage.Msg010}"), MESSAGEBOX_CAPTION);//工单结束时间不能为空
                //MessageService.ShowMessage("工单结束时间不能为空。", "提示");
                this.deEndDateTime.Select();
                return;
            }
            //工单物料的数量必须输入。
            EnumerableRowCollection <DataRow> drs = this._dtWorkOrderBom
                                                    .AsEnumerable()
                                                    .Where(dr => string.IsNullOrEmpty(Convert.ToString(dr[POR_WORK_ORDER_BOM_FIELDS.FIELD_REQ_QTY])) ||
                                                           Convert.ToDouble(dr[POR_WORK_ORDER_BOM_FIELDS.FIELD_REQ_QTY]) < 0);

            if (drs.Count() > 0)
            {
                DataRow dr           = drs.First();
                string  materialCode = Convert.ToString(dr[POR_WORK_ORDER_BOM_FIELDS.FIELD_MATERIAL_CODE]);
                MessageService.ShowMessage(string.Format("工单物料({0})的数量必须大于等于0。", materialCode), MESSAGEBOX_CAPTION);
                this.gvBOM.FocusedColumn    = this.gcolReqQty;
                this.gvBOM.FocusedRowHandle = this._dtWorkOrderBom.Rows.IndexOf(dr);
                return;
            }
            //移除物料号码为空的工单物料记录。
            drs = this._dtWorkOrderBom
                  .AsEnumerable()
                  .Where(dr => string.IsNullOrEmpty(Convert.ToString(dr[POR_WORK_ORDER_BOM_FIELDS.FIELD_MATERIAL_CODE])));
            foreach (DataRow dr in drs)
            {
                this._dtWorkOrderBom.Rows.Remove(dr);
            }

            if (this._dtWorkOrderNumber.Rows.Count == 0)
            {
                this._dtWorkOrderNumber.Rows.Add(this._dtWorkOrderNumber.NewRow());
            }
            DataRow drWorkorderNumber = this._dtWorkOrderNumber.Rows[0];
            string  workOrderKey      = Convert.ToString(drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_WORK_ORDER_KEY]);

            //保存前判断该工单号是否存在
            WorkOrderEntity workOrderEntity = new WorkOrderEntity();
            DataSet         dsIsExistOrder  = new DataSet();

            dsIsExistOrder = workOrderEntity.GetWorkorderInfo(teOrderNumber.Text);
            bool isExistOrder = true;

            if (!string.IsNullOrEmpty(workOrderEntity.ErrorMsg))
            {
                MessageService.ShowError(workOrderEntity.ErrorMsg);
                return;
            }
            if (dsIsExistOrder.Tables.Count == 0 || dsIsExistOrder.Tables[0].Rows.Count == 0)
            {
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_WORK_ORDER_KEY] = "";
                isExistOrder = false;
            }
            else
            {
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_WORK_ORDER_KEY] = dsIsExistOrder.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows[0][POR_WORK_ORDER_FIELDS.FIELD_WORK_ORDER_KEY];
            }


            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_FACTORY_NAME]        = roomName;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_ORDER_NUMBER]        = workOrderNumber;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_QUANTITY_ORDERED]    = qty;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_ORDER_STATE]         = orderState;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_PRO_ID]              = proId;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_PART_NUMBER]         = partNumber;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_REVENUE_TYPE]        = revenueType;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_ORDER_TYPE]          = orderType;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_ORDER_PRIORITY]      = priority;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_START_TIME]          = startTime;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_EDIT_TIME]           = endTime;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_PLANNED_START_TIME]  = startTime;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_PLANNED_FINISH_TIME] = endTime;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_COMMENTS]            = this.meComment.Text;
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_DESCRIPTIONS]        = partDescription;
            //新增工单状态下。
            if (isExistOrder)
            {
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_PART_REVISION]    = "1";
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_ORDER_CLOSE_TYPE] = "0";
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_NEXT_SEQ]         = "0";
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_QUANTITY_LEFT]    = qty;
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_MODULE]           = "007";
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_LINENAME]         = "07";
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_CREATOR]          = PropertyService.Get(PROPERTY_FIELDS.USER_NAME);
                drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_CREATE_TIMEZONE]  = PropertyService.Get(PROPERTY_FIELDS.TIMEZONE);
            }
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_EDITOR]        = PropertyService.Get(PROPERTY_FIELDS.USER_NAME);
            drWorkorderNumber[POR_WORK_ORDER_FIELDS.FIELD_EDIT_TIMEZONE] = PropertyService.Get(PROPERTY_FIELDS.TIMEZONE);

            DataSet dsParam = new DataSet();

            dsParam.Merge(this._dtWorkOrderNumber);
            dsParam.Merge(this._dtWorkOrderBom);

            this._entity.Save(dsParam);

            if (!string.IsNullOrEmpty(this._entity.ErrorMsg))
            {
                MessageService.ShowError(this._entity.ErrorMsg);
            }
            else
            {
                SetControlReadOnly(true);
                this.btnAddBom.Enabled    = false;
                this.btnRemoveBom.Enabled = false;
                this.tsbSave.Enabled      = false;
                this.tsbModify.Enabled    = true;

                //绑定产品料号
                BindPartNumber();
                BindMaterialCode();
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 计算排班
        /// </summary>
        /// <returns></returns>
        private List <WorkTimeSortEntity> GetTimeOrder(List <WorkOrderEntity> data, List <WorkGroupSetEntity> group, DateTime usetime, bool next)
        {
            //生成下一年数据  时间固定为下一年的一月一号 next=ture

            //计算得出所有数据
            List <WorkTimeSortEntity> allList = new List <WorkTimeSortEntity>();

            foreach (var item in group)
            {
                //获取部门所有生成的数据
                var sortList = service.GetWorkTimeSort(item.departmentid);

                var dept = deptbll.GetEntity(item.departmentid);
                if (dept == null)
                {
                    continue;
                }
                int year  = usetime.Year;
                int month = usetime.Month;
                int day   = usetime.Day;
                #region
                //连接月的循环
                var monthorder = -1;
                //生成下年数据
                if (next)
                {
                    var lastYear     = year - 1;
                    var getMonthSort = sortList.FirstOrDefault(x => x.year == lastYear && x.month == 12);
                    if (getMonthSort == null)
                    {
                        continue;
                    }
                    monthorder = getMonthSort.setsort;
                }
                //循环月
                for (int i = 1; i <= 12; i++)
                {
                    //月实体
                    var setMonth = new WorkTimeSortEntity();
                    if (i >= month)
                    {
                        //获取当前时间数据
                        var nowTime = sortList.FirstOrDefault(x => x.year == year && x.month == i);
                        //不为空加入删除
                        if (nowTime != null)
                        {
                            nowTime.datatype = "del";
                            allList.Add(nowTime);
                        }
                        setMonth.fullname       = item.fullname;
                        setMonth.departmentid   = item.departmentid;
                        setMonth.worktimesortid = Guid.NewGuid().ToString();
                        setMonth.month          = i;
                        setMonth.deptcode       = dept.EnCode;
                        setMonth.year           = year;
                        setMonth.datatype       = "add";
                        //获取月的天数
                        var           daySum     = Time.GetDaysOfMonth(year, i);
                        StringBuilder timespan   = new StringBuilder();
                        StringBuilder timespanId = new StringBuilder();
                        //规则循环
                        var start = -1;
                        for (int j = 1; j <= daySum; j++)
                        {
                            var week = Time.GetWeekNameOfDay(new DateTime(year, i, j));
                            if (j >= day || i > month)
                            {
                                //开始循环规则
                                if (monthorder > -1)
                                {
                                    if (monthorder == data.Count - 1)
                                    {
                                        start = 0;
                                    }
                                    else
                                    {
                                        start = monthorder + 1;
                                    }

                                    monthorder = -1;
                                }
                                else
                                if (start == -1)
                                {
                                    start = item.groupsort;
                                }
                                //判断是否常白班
                                var ck = data.Where(x => x.isweek).Count();
                                //根据序列获取规则数据
                                var set = new WorkOrderEntity();
                                if (ck == data.Count)
                                {
                                    start = 0;
                                    set   = data.FirstOrDefault(x => x.WorkOrderId == item.workorderid);
                                }
                                else
                                {
                                    set = data.FirstOrDefault(x => x.OrderSort == start);
                                }
                                var spanId = set.settingid;
                                var span   = set.WorkName == "休息" ? "休息" : set.StartTime.ToString("HH:mm") + "-" + set.EndTime.ToString("HH:mm") + "(" + set.WorkName + ")";
                                if (set.isweek && (week.Contains("六") || week.Contains("日")))
                                {
                                    span   = "休息";
                                    spanId = "0";
                                }
                                //月结束时
                                if (j == daySum)
                                {
                                    timespanId.Append(spanId);
                                    timespan.Append(span);
                                    setMonth.timedata   = timespan.ToString();
                                    setMonth.timedataid = timespanId.ToString();
                                    setMonth.setsort    = start;//结尾时处于循环的那个点
                                    monthorder          = start;
                                }
                                else
                                {
                                    timespanId.Append(spanId + ",");
                                    timespan.Append(span + ",");
                                }
                                //序列增加  到尾部 为0
                                start++;
                                if (start == data.Count)
                                {
                                    start = 0;
                                }
                            }
                            else
                            {
                                //不为空加入当前数据
                                if (nowTime != null)
                                {
                                    var str   = nowTime.timedata.Split(',');
                                    var strId = nowTime.timedataid.Split(',');
                                    timespan.Append(str[j - 1] + ",");
                                    timespanId.Append(strId[j - 1] + ",");
                                }
                                else
                                {
                                    timespan.Append("无,");
                                    timespanId.Append("0,");
                                }
                            }
                        }
                        //加入list
                        allList.Add(setMonth);
                    }
                    //每年12月完成后下一年
                    if (i == 12)
                    {
                        year  = year + 1;
                        month = 1;
                        day   = 1;
                        //无下年数据
                        var ckyear = sortList.Where(x => x.year == year);
                        if (ckyear.Count() == 0)
                        {
                            continue;
                        }
                        else
                        {
                            i = 1;
                        }
                    }
                }
                #endregion
            }
            return(allList);
        }