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

289 lines
11 KiB
C#

2 years ago
using Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using Estsh.Core.Services.IServices;
using Estsh.Core.Util;
using System.Collections;
using System.Text;
/***************************************************************************************************
*
* sitong.dong
*
* 2022.06.22
*
*
**************************************************************************************************/
namespace Estsh.Core.Services
{
/// <summary>
/// 菜单业务处理类
/// </summary>
public class SupportingCustomerService : BaseService<WmsCustomerToSupplier>, ISupportingCustomerService
{
private readonly ISupportingCustomerRepository repository;
public SupportingCustomerService(ISupportingCustomerRepository _repository) : base(_repository)
{
repository = _repository;
}
/// <summary>
/// 根据分页条件获取分页菜单数据
/// </summary>
/// <param name="part_no"></param>
/// <param name="pager"></param>
/// <param name="direction"></param>
/// <param name="sort"></param>
/// <returns></returns>
public Hashtable GetListByPage(String customerNo, String hzCustomerNo, String partSpec, Pager pager, String direction, String sort, String enabled)
{
Hashtable result = new Hashtable();
String strWhere = " 1=1 ";
if (customerNo != null && !customerNo.Trim().Equals(""))
{
strWhere += " and customer_no like '%" + customerNo.Trim() + "%'";
}
if (hzCustomerNo != null && !hzCustomerNo.Trim().Equals(""))
{
strWhere += " and hz_customer_no like '%" + hzCustomerNo.Trim() + "%'";
}
if (partSpec != null && !partSpec.Trim().Equals(""))
{
strWhere += " and part_spec like '%" + partSpec.Trim() + "%'";
}
if (enabled != null && !enabled.Trim().Equals(""))
{
strWhere += " and enabled = '" + enabled + "'";
}
String orderBy = "";
if (sort != null && !"".Equals(sort.Trim()))
{
orderBy += " " + typeof(WmsCustomerToStock).GetEntityColumnName(sort.Trim()) + " " + direction;
}
else
{
orderBy += " " + typeof(WmsCustomerToStock).GetEntityColumnName("ruid") + " " + direction;
}
result = repository.GetListByPage(pager.pageSize, pager.pageNo, strWhere, orderBy);
return result;
}
/// <summary>
/// 获取下拉框中的菜单数据
/// </summary>
/// <returns></returns>
public List<KeyValueResult> GetSelect()
{
return repository.GetSelect();
}
/// <summary>
/// 查看零件详情
/// </summary>
/// <param name="part_id">零件ID</param>
/// <returns></returns>
public List<SysPart> GetDetailByName(String part_no)
{
part_no = "part_no = '" + part_no + "' ";
List<SysPart> dt = repository.GetListFromPart(part_no);
return dt;
}
public List<WmsCustomerToSupplier> ifExemptionList(String ruid)
{
return repository.ifExemptionList(ruid);
}
public List<WmsCustomerToSupplier> ifExemptionList(String customerPart, String partNo)
{
return repository.ifExemptionList(customerPart, partNo);
}
//导出查询
public List<SupportingCustomer> getExportList(String customerNo, String enabled)
{
Hashtable result = new Hashtable();
String strWhere = " 1=1 ";
if (customerNo != null && !customerNo.Trim().Equals(""))
{
strWhere += " and customer_no like '%" + customerNo.Trim() + "%'";
}
if (enabled != null && !enabled.Trim().Equals(""))
{
strWhere += " and enabled = '" + enabled + "'";
}
String orderBy = " order by customer_no ";
return repository.getExportList(strWhere, orderBy);
}
/// <summary>
/// 导入支给件客户
/// </summary>
public Hashtable ImportExcel(List<SupportingCustomer> inputStream, int factoryId, string factoryCode, int empId)
{
try
{
Hashtable result = new Hashtable();
List<string> SqlStrings = new List<string>();
List<DynamicParameters> Parameters = new List<DynamicParameters>();
DynamicParameters Params = new DynamicParameters();
//判断EXCEL是否存在数据
if (inputStream == null || inputStream.Count == 0)
{
result.Add("message", "导入数据为空,请重新导入!");
result.Add("flag", "error");
return result;
}
//判断零件号是否存在
for (int i = 0; i < inputStream.Count; i++)
{
string CustomerNo = inputStream[i].CustomerNo.ToString();
string HzCustomerNo = inputStream[i].HzCustomerNo.ToString();
string partSpec = inputStream[i].partSpec.ToString();
string partSpec2 = inputStream[i].partSpec2.ToString();
if (CustomerNo.Trim() == "" || HzCustomerNo.Trim() == "")
{
result.Add("message", "导入失败,第" + (i+1) + "行不能为空");
result.Add("flag", "error");
}
List<WmsCustomerToSupplier> sysExemptions = repository.ifExemptionList(CustomerNo, HzCustomerNo);
if (sysExemptions.Count <= 0)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("INSERT INTO dbo.wms_customer_to_supplier ");
querySen.AppendLine(" ( customer_no , ");
querySen.AppendLine(" hz_customer_id , ");
querySen.AppendLine(" hz_customer_no , ");
querySen.AppendLine(" part_spec , ");
querySen.AppendLine(" part_spec2 , ");
querySen.AppendLine(" enabled , ");
querySen.AppendLine(" factory_id , ");
querySen.AppendLine(" factory_code , ");
querySen.AppendLine(" create_userid , ");
querySen.AppendLine(" create_time ");
querySen.AppendLine(" ) ");
querySen.AppendLine("VALUES ( @customer_no ,");
querySen.AppendLine(" @hz_customer_id , ");
querySen.AppendLine(" @hz_customer_no,");
querySen.AppendLine(" @partSpec,");
querySen.AppendLine(" @partSpec2,");
querySen.AppendLine(" @enabled,");
querySen.AppendLine(" @factoryId ,");
querySen.AppendLine(" @factoryCode ,");
querySen.AppendLine(" @createUserid,");
querySen.AppendLine(" @createTime");
querySen.AppendLine(" ) ");
Params = new DynamicParameters();
Params.Add("@customer_no", CustomerNo);
Params.Add("@hz_customer_id", "");
Params.Add("@hz_customer_no", HzCustomerNo);
Params.Add("@partSpec", partSpec);
Params.Add("@partSpec2", partSpec2);
Params.Add("@enabled", "Y");
Params.Add("@factoryId", factoryId);
Params.Add("@factoryCode", factoryCode);
Params.Add("@createUserid", empId);
Params.Add("@createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
SqlStrings.Add(querySen.ToString());
Parameters.Add(Params);
}
else
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("update dbo.wms_customer_to_supplier set ");
querySen.AppendLine(" part_spec=@partSpec , part_spec2=@partSpec2 ");
querySen.AppendLine(" where customer_no=@customer_no and hz_customer_no=@hz_customer_no");
Params = new DynamicParameters();
Params.Add("@customer_no", CustomerNo);
Params.Add("@hz_customer_no", HzCustomerNo);
Params.Add("@partSpec", partSpec);
Params.Add("@partSpec2", partSpec2);
SqlStrings.Add(querySen.ToString());
Parameters.Add(Params);
}
}
if (repository.InsertData(SqlStrings, Parameters))
{
result.Add("message", "导入成功");
result.Add("flag", "OK");
}
else
{
result.Add("message", "导入失败");
result.Add("flag", "error");
}
return result;
}
catch (Exception ex)
{
Hashtable result = new Hashtable();
result.Add("message", "导入失败");
result.Add("flag", "error");
return result;
}
}
/// <summary>
/// 保存菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int Insert(WmsCustomerToSupplier htParams)
{
return repository.Insert(htParams);
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int Update(WmsCustomerToSupplier htParams)
{
return repository.Update(htParams);
}
/// <summary>
/// 启用
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int EnableData(String ids)
{
ids = ids.Substring(0, ids.Length - 1);
return this.repository.EnableData(ids);
}
/// <summary>
/// 禁用
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int DisableData(String ids)
{
ids = ids.Substring(0, ids.Length - 1);
return this.repository.DisableData(ids);
}
}
}