|
|
|
|
using POSV.Entity;
|
|
|
|
|
using POSV.Entity.Stock;
|
|
|
|
|
using POSV.Entity.WeiXinDc;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace POSV.Component
|
|
|
|
|
{
|
|
|
|
|
public class ProductSelectMerge
|
|
|
|
|
{
|
|
|
|
|
public static List<FoodMaterialDetailEntity> Merge(int rows, int cols, List<FoodMaterialDetailEntity> dataSource)
|
|
|
|
|
{
|
|
|
|
|
//移除可能存在的分页标识
|
|
|
|
|
dataSource.RemoveAll(x => Constant.PREV_PAGER.Equals(x.ProductName) || Constant.NEXT_PAGER.Equals(x.ProductName));
|
|
|
|
|
|
|
|
|
|
int pageSize = rows * cols;
|
|
|
|
|
int totalCount = dataSource.Count;
|
|
|
|
|
|
|
|
|
|
int pageCount = ((totalCount - 1) + (pageSize - 2) - 1) / (pageSize - 2);
|
|
|
|
|
|
|
|
|
|
int offset = 0;
|
|
|
|
|
int i = 1;
|
|
|
|
|
for (; i < pageCount; i++)
|
|
|
|
|
{
|
|
|
|
|
offset += (pageSize - 1);
|
|
|
|
|
if (i == 1)
|
|
|
|
|
{
|
|
|
|
|
//第一页,最后一位加下一页
|
|
|
|
|
FoodMaterialDetailEntity entity = new FoodMaterialDetailEntity();
|
|
|
|
|
entity.ProductName = Constant.NEXT_PAGER;
|
|
|
|
|
entity.Memo = (i + 1).ToString();
|
|
|
|
|
dataSource.Insert(offset, entity);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//中间页,最后加前后
|
|
|
|
|
var entity = new FoodMaterialDetailEntity();
|
|
|
|
|
entity.ProductName = Constant.PREV_PAGER;
|
|
|
|
|
entity.Memo = (i - 1).ToString();
|
|
|
|
|
dataSource.Insert(offset - 1, entity);
|
|
|
|
|
|
|
|
|
|
entity = new FoodMaterialDetailEntity();
|
|
|
|
|
entity.ProductName = Constant.NEXT_PAGER;
|
|
|
|
|
entity.Memo = (i + 1).ToString();
|
|
|
|
|
dataSource.Insert(offset, entity);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
offset++;
|
|
|
|
|
}
|
|
|
|
|
if(pageCount > 1)
|
|
|
|
|
{
|
|
|
|
|
//最后一页,最后一位加上一页
|
|
|
|
|
var entity = new FoodMaterialDetailEntity();
|
|
|
|
|
entity.ProductName = Constant.PREV_PAGER;
|
|
|
|
|
entity.Memo = (i - 1).ToString();
|
|
|
|
|
dataSource.Add(entity);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return dataSource;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static List<WxdcGoodsEntity> MergeWxdc(int rows, int cols, List<WxdcGoodsEntity> dataSource)
|
|
|
|
|
{
|
|
|
|
|
//移除可能存在的分页标识
|
|
|
|
|
dataSource.RemoveAll(x => Constant.PREV_PAGER.Equals(x.Name) || Constant.NEXT_PAGER.Equals(x.Name));
|
|
|
|
|
|
|
|
|
|
int pageSize = rows * cols;
|
|
|
|
|
int totalCount = dataSource.Count;
|
|
|
|
|
|
|
|
|
|
int pageCount = ((totalCount - 1) + (pageSize - 2) - 1) / (pageSize - 2);
|
|
|
|
|
|
|
|
|
|
int offset = 0;
|
|
|
|
|
int i = 1;
|
|
|
|
|
for (; i < pageCount; i++)
|
|
|
|
|
{
|
|
|
|
|
offset += (pageSize - 1);
|
|
|
|
|
if (i == 1)
|
|
|
|
|
{
|
|
|
|
|
//第一页,最后一位加下一页
|
|
|
|
|
WxdcGoodsEntity entity = new WxdcGoodsEntity();
|
|
|
|
|
entity.Name = Constant.NEXT_PAGER;
|
|
|
|
|
entity.Description = (i + 1).ToString();
|
|
|
|
|
dataSource.Insert(offset, entity);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//中间页,最后加前后
|
|
|
|
|
var entity = new WxdcGoodsEntity();
|
|
|
|
|
entity.Name = Constant.PREV_PAGER;
|
|
|
|
|
entity.Description = (i - 1).ToString();
|
|
|
|
|
dataSource.Insert(offset - 1, entity);
|
|
|
|
|
|
|
|
|
|
entity = new WxdcGoodsEntity();
|
|
|
|
|
entity.Name = Constant.NEXT_PAGER;
|
|
|
|
|
entity.Description = (i + 1).ToString();
|
|
|
|
|
dataSource.Insert(offset, entity);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
offset++;
|
|
|
|
|
}
|
|
|
|
|
if (pageCount > 1)
|
|
|
|
|
{
|
|
|
|
|
//最后一页,最后一位加上一页
|
|
|
|
|
var entity = new WxdcGoodsEntity();
|
|
|
|
|
entity.Name = Constant.PREV_PAGER;
|
|
|
|
|
entity.Description = (i - 1).ToString();
|
|
|
|
|
dataSource.Add(entity);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return dataSource;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|