You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

350 lines
15 KiB

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using FireBirdUtil.SqlUtils;
using Forks.JsonRpc.Client;
using Forks.JsonRpc.Client.Data;
using Utils.Datas;
using WeighBusiness.BO;
using WeighBusiness.Utils;
using WeighBusiness.Utils.SqlUtils;
namespace WeighBusiness.BL
{
public static class WeightInfoBL
{
public static bool Insert(WeightInfo weight,SqlHelperEx she2 = null)
{
string insertSql = InsertUtil.GetInsertSql(TableNames.,
new string[] { "Goods_Name", "Goods_Spec", "Goods_ID", "Weight", "SubWeight", "NetWeight", "CreateTime", "ProductBatch", "IsSend", "SecondNum", "ButcDetailID" },
new string[] { weight.Goods_Name, weight.Goods_Spec, weight.Goods_ID.ToString(), weight.Weight.ToString(), weight.SubWeight == null ? "null" : weight.SubWeight.ToString(), weight.NetWeight == null ? "null" : weight.NetWeight.ToString(), weight.CreateTime == null ? "null" : weight.CreateTime.ToString(), weight.ProductBatch, weight.IsSelected ? "1" : "0", weight.SecondNum == null ? "null" : weight.SecondNum.ToString(), weight.ButcDetailID == null ? "null" : weight.ButcDetailID.ToString() });
bool success;
string errorMsg;
if (she2 == null) {
using (var she = new SqlHelperEx()) {
she.CreateTransaction();
she.ExecuteNonQuery(insertSql, out success, out errorMsg);
if (!success) {
she.Rollback();
throw new ApplicationException(errorMsg);
}
she.Commit();
}
} else {
she2.ExecuteNonQuery(insertSql, out success, out errorMsg);
if (!success) {
she2.Rollback();
throw new ApplicationException(errorMsg);
}
}
return success;
}
private static bool ExcuteSql(string sql)
{
bool success;
using (var she = new SqlHelperEx()) {
she.CreateTransaction();
she.ExecuteNonQuery(sql, out success);
if (!success)
she.Rollback();
else
she.Commit();
}
return success;
}
public static int GetWeightInfoPageCount(int pageSize, bool hasInputId = false)
{
var sql = "select count(ID) from {0} where 1=1 {1}".FormatWith(TableNames., hasInputId ? "and Input_ID is not null" : string.Empty);
var table = SqlHelperEx.DoQuery(sql);
if (table.Rows.Count == 0)
return 0;
var counts = (int)table.Rows[0][0];
var num1 = counts / pageSize;
var num2 = counts % pageSize;
return num2 > 0 ? num1 + 1 : num1;
}
public static List<WeightInfo> GetWeightInfos(bool hasOutputId = false)
{
var sql = "select SecondNum,Weight,SubWeight,NetWeight,CreateTime,Goods_ID,ID,Goods_Name,Goods_Spec,ButcDetailID from {0} where 1=1 {1} order by ID desc".FormatWith(TableNames., hasOutputId ? "and Output_ID is not null" : "and Output_ID is null");
var table = SqlHelperEx.DoQuery(sql);
if (table.Rows.Count == 0)
return new List<WeightInfo>();
var list = new List<WeightInfo>();
var i = table.Rows.Count;
foreach (DataRow row in table.Rows) {
var detail = new WeightInfo();
detail.SecondNum = DataTypeUtil.GetDecimalNum(row[0]);
detail.Weight = DataTypeUtil.GetDecimalNum(row[1]);
detail.SubWeight = DataTypeUtil.GetDecimalNullNum(row[2]);
detail.NetWeight = DataTypeUtil.GetDecimalNullNum(row[3]);
detail.CreateTime = DateTime.Parse(row[4].ToString());
detail.Goods_ID = DataTypeUtil.GetLongNum(row[5]);
detail.ID = DataTypeUtil.GetLongNum(row[6]);
detail.Goods_Name = DataTypeUtil.ToStringEmptyIfNull(row[7]);
detail.Goods_Spec = DataTypeUtil.ToStringEmptyIfNull(row[8]);
detail.ButcDetailID = DataTypeUtil.GetLongNullNum(row[9]);
detail.Number = i;
i--;
list.Add(detail);
}
return list;
}
public static decimal? GetButcDetailIDWeight(long? butcDetailID,SqlHelperEx she2 = null)
{
if (butcDetailID != null) {
var sql = "select sum(NetWeight) from {0} where ButcDetailID = {1} and Output_ID is null".FormatWith(TableNames., butcDetailID);
DataTable table;
if (she2 == null) {
using (var she = new SqlHelperEx()) {
table = she.Query(sql);
}
} else {
table = she2.Query(sql);
}
if (table.Rows.Count == 0) {
return null;
}
return DataTypeUtil.GetDecimalNullNum(table.Rows[0][0]);
}
return null;
}
public static void UpdateOutputId(long[] ids,long outputId)
{
string updateSql = string.Format("update " + TableNames. + " set Output_ID = {0} where ID in ({1})",outputId, string.Join(",",ids));
bool success = true;
using (var she = new SqlHelperEx()) {
she.CreateTransaction();
she.ExecuteNonQuery(updateSql, out success);
if (!success) {
she.Rollback();
} else {
she.Commit();
}
}
}
public static void UpdateOutputIdByButcDetailID(long butcDetailID, long outputId)
{
string updateSql = string.Format("update " + TableNames. + " set Output_ID = {0} where ButcDetailID = {1}", outputId, butcDetailID);
bool success = true;
using (var she = new SqlHelperEx()) {
she.CreateTransaction();
she.ExecuteNonQuery(updateSql, out success);
if (!success) {
she.Rollback();
} else {
she.Commit();
}
}
}
public static int GetUnfinishedBatchPageCount(int pageSize)
{
var sql = "select count(ID) from {0} where State=0".FormatWith(TableNames.);
var table = SqlHelperEx.DoQuery(sql);
if (table.Rows.Count == 0)
return 0;
var counts = (int)table.Rows[0][0];
var num1 = counts / pageSize;
var num2 = counts % pageSize;
return num2 > 0 ? num1 + 1 : num1;
}
public static List<UnfinishedBatch> GetUnfinishedBatchPage(int pageIndex, int pageSize)
{
var sql = "select * from(select ProductBatch,LegType from {0} where State=0) rows {1} to {2}".FormatWith(TableNames., pageIndex == 1 ? 1 : (pageIndex - 1) * pageSize + 1, pageIndex * pageSize);
var table = SqlHelperEx.DoQuery(sql);
if (table.Rows.Count == 0)
return new List<UnfinishedBatch>();
var list = new List<UnfinishedBatch>();
foreach (DataRow row in table.Rows) {
var detail = new UnfinishedBatch();
detail.ProductBatch = DataTypeUtil.ToStringEmptyIfNull(row[0]);
detail.LegType = row[1].ToString() == "前腿" ? LegType. : LegType.;
list.Add(detail);
}
return list;
}
public static List<WeightInfo> GetWeightInfoByIds(params long[] weightIds)
{
var sql = "select LegType,Weight,SubWeight,NetWeight,CreateTime,Goods_ID,ProductBatch,ID from {0} where ID in ({1})".FormatWith(TableNames.,string.Join(",",weightIds));
var table = SqlHelperEx.DoQuery(sql);
if (table.Rows.Count == 0)
return new List<WeightInfo>();
var list = new List<WeightInfo>();
foreach (DataRow row in table.Rows) {
var detail = new WeightInfo();
//detail.LegType = row[0].ToString() == "前腿" ? LegType.前腿 : LegType.后腿;
detail.Weight = DataTypeUtil.GetDecimalNum(row[1]);
detail.SubWeight = DataTypeUtil.GetDecimalNullNum(row[2]);
detail.NetWeight = DataTypeUtil.GetDecimalNullNum(row[3]);
detail.CreateTime = DateTime.Parse(row[4].ToString());
detail.Goods_ID = DataTypeUtil.GetLongNum(row[5]);
detail.ProductBatch = DataTypeUtil.ToStringEmptyIfNull(row[6]);
detail.ID = DataTypeUtil.GetLongNum(row[7]);
list.Add(detail);
}
return list;
}
public static void DeleteByID(long id, SqlHelperEx she2 = null)
{
var sql = SqlUtil.GetDeleteSql(TableNames., "where ID = '{0}'".FormatWith(id));
bool success;
if (she2 == null) {
using (var she = new SqlHelperEx()) {
she.CreateTransaction();
she.ExecuteNonQuery(sql, out success);
if (!success)
she.Rollback();
else
she.Commit();
}
} else {
she2.ExecuteNonQuery(sql, out success);
if (!success)
she2.Rollback();
}
}
//public static void Delete(List<Tuple<long,string>> tuples)
//{
// var sql = "select ProductBatch,LegType from {0} where State=0) rows {1} to {2}".FormatWith(TableNames.未完成生产批次, pageIndex == 1 ? 1 : (pageIndex - 1) * pageSize + 1, pageIndex * pageSize);
// var table = SqlHelperEx.DoQuery(sql);
// var sql = SqlUtil.GetDeleteSql(TableNames.称重记录, "where ID in ({0})".FormatWith(string.Join(",", ids)));
// bool success;
// using (var she = new SqlHelperEx()) {
// she.CreateTransaction();
// she.ExecuteNonQuery(sql, out success);
// if (!success) {
// she.Rollback();
// } else {
// she.Commit();
// }
// }
//}
// public static Tuple<decimal?, int?> GetTotalWeightByDetailID(long? BatchNumber_ID,long Detail_ID,WeightType type,bool isBatch = false)
// {
// return LocalQueryUtil.GetTotalWeightByDetailID(BatchNumber_ID,Detail_ID,type,isBatch);
// }
// public static List<WeightInfo> GetWeightInfoByDetailIDs(long? BatchNumber_ID, List<long> detailIDs, WeightType type, bool isBatch = false)
// {
// var list = new List<WeightInfo>();
// var querySql = "select ID,Goods_ID,NetWeight,Detail_ID,ProductDate,BatchNumber_ID,ProductLink,Routing_ID,ProductShift_ID,StandardNum,Department_ID,Employee_ID,GoodsBatchId,OutDetailId from {0} where Detail_ID in ({1}) and IsBatch = {2} and WeightType='{3}' and BatchNumber_ID = {4}".FormatWith(TableNames.称重记录, string.Join(",", detailIDs), !isBatch ? "0" : "1", type.ToString(), BatchNumber_ID);
// var table = SqlHelperEx.DoQuery(querySql);
// if (table.Rows.Count == 0)
// return new List<WeightInfo>();
// foreach (DataRow row in table.Rows) {
// var weightInfo = new WeightInfo();
// weightInfo.ID = DataTypeUtil.GetLongNum(row[0]);
// weightInfo.Goods_ID = DataTypeUtil.GetLongNum(row[1]);
// weightInfo.NetWeight = DataTypeUtil.GetDecimalNum(row[2]);
// weightInfo.Detail_ID = DataTypeUtil.GetLongNum(row[3]);
// weightInfo.ProductDate = DataTypeUtil.GetDateTimeNullData(row[4]);
// weightInfo.BatchNumber_ID = DataTypeUtil.GetLongNullNum(row[5]);
// weightInfo.ProductLink = DataTypeUtil.ToStringEmptyIfNull(row[6]);
// weightInfo.Routing_ID = DataTypeUtil.GetLongNullNum(row[7]);
// weightInfo.ProductShift_ID = DataTypeUtil.GetLongNullNum(row[8]);
// weightInfo.StandardNum = DataTypeUtil.GetDecimalNullNum(row[9]);
// weightInfo.Department_ID = DataTypeUtil.GetLongNullNum(row[10]);
// weightInfo.Employee_ID = DataTypeUtil.GetLongNullNum(row[11]);
// weightInfo.GoodsBatchId = DataTypeUtil.GetLongNullNum(row[12]);
// weightInfo.OutDetailID = DataTypeUtil.GetLongNullNum(row[13]);
// list.Add(weightInfo);
// }
// return list;
// }
// public static List<WeightInfo> GetInStoreWeightInfos(WeightType type,bool isBatch,long? detailId = null, long?batchNumberId= null)
// {
// var list = new List<WeightInfo>();
// var querySql = "select Goods_ID,Goods_Name,Weight,SubWeight,CreateTime,ID,NetWeight,GoodsBatch_Name,GoodsBatchId from {0} where IsBatch = '{1}' and WeightType = '{2}'".FormatWith(TableNames.称重记录, isBatch ? "1" : "0", type.ToString());
// if (detailId != null)
// {
// querySql = querySql + " and Detail_ID = "+detailId;
// }
// if (batchNumberId != null)
// {
// querySql = querySql + " and BatchNumber_ID = " + batchNumberId;
// }
// var table = SqlHelperEx.DoQuery(querySql);
// if (table.Rows.Count == 0)
// return new List<WeightInfo>();
// foreach (DataRow row in table.Rows) {
// var weightInfo = new WeightInfo();
// weightInfo.Goods_ID = DataTypeUtil.GetLongNum(row[0]);
// weightInfo.Goods_Name = DataTypeUtil.ToStringEmptyIfNull(row[1]);
// weightInfo.Weight = DataTypeUtil.GetDecimalNum(row[2]);
// weightInfo.SubWeight = DataTypeUtil.GetDecimalNum(row[3]);
// weightInfo.CreateTime = DataTypeUtil.GetDateTimeNullData(row[4]).Value;
// weightInfo.ID = DataTypeUtil.GetLongNum(row[5]);
// weightInfo.NetWeight = DataTypeUtil.GetDecimalNum(row[6]);
// weightInfo.GoodsBatch_Name = DataTypeUtil.ToStringEmptyIfNull(row[7]);
// weightInfo.GoodsBatchId = DataTypeUtil.GetLongNullNum(row[8]);
// list.Add(weightInfo);
// }
// return list;
// }
// public static decimal? GetInStoreWeightByGoodsID(long? GoodsId)
// {
// var querySql = "select sum(NetWeight) from {0} where Goods_ID = {1} and WeightType = '{2}'".FormatWith(TableNames.称重记录, GoodsId,WeightType.InStore.ToString());
// var table = SqlHelperEx.DoQuery(querySql);
// if (table.Rows.Count == 0)
// return null;
// return DataTypeUtil.GetDecimalNum(table.Rows[0][0]);
// }
// public static void DeleteInStoreWeightInfos(WeightType type)
// {
// var sql = SqlUtil.GetDeleteSql(TableNames.称重记录, "where WeightType = '{0}'".FormatWith(type.ToString()));
// using (var she = new SqlHelperEx()) {
// bool success;
// she.CreateTransaction();
// she.ExecuteNonQuery(sql, out success);
// if (!success)
// she.Rollback();
// else
// she.Commit();
// }
// }
//public static bool GetSameWeightByGoodsId(long? GoodsId,decimal? weight)
//{
// var querySql = "select ID from {0} where Goods_ID = {1} and NetWeight = {2} and WeightType = '{3}'".FormatWith(TableNames.称重记录, GoodsId,weight, WeightType.InStore.ToString());
// var table = SqlHelperEx.DoQuery(querySql);
// if (table.Rows.Count == 0)
// return false;
// var id = DataTypeUtil.GetLongNullNum(table.Rows[0][0]);
// return id != null;
//}
//public static void DeleteImport(List<long> ids)
//{
// var sql = SqlUtil.GetDeleteSql(TableNames.称重记录, "where Detail_ID in ({0}) and WeightType = '{1}' and IsImport = '1' and IsBatch = '1'".FormatWith(string.Join(",", ids), WeightType.Input.ToString()));
// using (var she = new SqlHelperEx()) {
// bool success;
// she.CreateTransaction();
// she.ExecuteNonQuery(sql, out success);
// if (!success)
// she.Rollback();
// else
// she.Commit();
// }
//}
}
}