using System.Collections; using Estsh.Core.Util; using Estsh.Core.Repository.IRepositories; using Estsh.Core.Services.IServices; using Estsh.Core.Models; using Estsh.Core.Model.Result; using Estsh.Core.IRepositories; using Estsh.Core.Dapper; using Estsh.Core.Model.ExcelModel; using Dapper; using System.Text; namespace Estsh.Core.Services { public class PullGroupMESService : BaseService, IPullGroupMESService { private readonly IPullGroupMESRepository repository; public PullGroupMESService(IPullGroupMESRepository _repository) : base(_repository) { repository = _repository; } public Hashtable getPullGroupListByPage(string pdlineCode, string groupName, string enabled, int factoryId, Pager pager, String direction, String sort) { Hashtable result = new Hashtable(); String strWhere = "where 1=1 "; String orderBy = ""; return repository.getPullGroupListByPage(pager.pageSize, pager.pageNo, strWhere, orderBy); } public Hashtable getPullGroupDetailListByPage(string groupCode, string enabled, int factoryId) { Hashtable result = new Hashtable(); String strWhere = " 1=1 "; if (groupCode != null && !groupCode.Trim().Equals("")) { strWhere += "and a.group_code = '" + groupCode.Trim() + "' "; } if (enabled != null && !enabled.Trim().Equals("")) { strWhere += "and a.enabled = '" + enabled.Trim() + "' "; } strWhere += " and a.factory_id = " + factoryId + " "; return repository.getPullGroupDetailListByPage(strWhere); } public List getPullGroupDetailList(string groupCode) { Hashtable result = new Hashtable(); String strWhere = " 1=1 "; if (groupCode != null && !groupCode.Trim().Equals("")) { strWhere += "and a.group_code = '" + groupCode.Trim() + "' "; } return repository.getPullGroupDetailList(strWhere); } public List GetPartInfo(string part_no) { return repository.GetPartInfo(part_no); } public List GetErpwarehouse() { return repository.GetErpwarehouse(); } public List getSelectFactory() { return repository.getSelectFactory(); } public List getSelectWarehouse() { return repository.getSelectWarehouse(); } public List getSelectWarehouse(string warehouseid) { return repository.getSelectWarehouse(warehouseid); } public List getSelectZone(string zoneid) { return repository.getSelectZone(zoneid); } public List getSelectZone() { return repository.getSelectZone(); } public List getSelectVendor() { return repository.getSelectVendor(); } public List getSelectVendor(string vendorId) { return repository.getSelectVendor(vendorId); } public List GetPart() { return repository.GetPart(0); } public List GetPart(string PartNo) { return repository.GetPart(0, PartNo); } public List GetOrderType() { return repository.GetOrderType(); } public List GetPdlineByPdlineId(int pdlineId) { return repository.GetPdlineByPdlineId(pdlineId); } public SysPdline GetPdlineByPdlineCode(string pdlineCode) { return repository.GetPdlineByPdlineCode(pdlineCode); } public List GetPdlineByKey() { return repository.GetPdlineByKey(); } public bool saveHandPullGroup(string groupCode, string handPullQty) { return repository.saveHandPullGroup(groupCode, handPullQty); } /// /// 保存菜单数据 /// /// /// public int savePullGroup(WmsPullingGroupMes htParams) { return repository.savePullGroup(htParams); } public int updatePullGroup(WmsPullingGroupMes htParams) { return repository.updatePullGroup(htParams); } public List GetPartNoInfo(string part_no) { return this.repository.GetPartNoInfo(part_no); } public List GetPartSpecInfo(string partSpec) { return this.repository.GetPartSpecInfo(partSpec); } /// /// /// /// /// public Hashtable getPullGroup(String ruid) { List dt = repository.getList(ruid); Hashtable result = new Hashtable(); result.Add("ruid", dt[0].Ruid); result.Add("groupCode", dt[0].GroupCode); result.Add("groupName", dt[0].GroupName); result.Add("pullingType", dt[0].PullingType); result.Add("pdlineCode", dt[0].PdlineCode); result.Add("pdlineName", dt[0].PdlineName); result.Add("kittingQty", Convert.ToInt32(dt[0].KittingQty)); result.Add("isAutoPrint", dt[0].IsAutoPrint); result.Add("printCopies", dt[0].PrintCopies); result.Add("triggerValue", dt[0].TriggerValue); result.Add("pullValue", dt[0].PullValue); return result; } public int EnableData(String ids) { ids = ids.Substring(0, ids.Length - 1); return this.repository.EnableData(ids); } public int DisableData(String ids) { ids = ids.Substring(0, ids.Length - 1); return this.repository.DisableData(ids); } public List getExportList(string groupCode, string groupName, string enabled, int factoryId) { String strWhere = " 1=1 "; if (groupCode != null && !groupCode.Trim().Equals("")) { strWhere += "and b.group_code like '%" + groupCode.Trim() + "%' "; } if (groupName != null && !groupName.Trim().Equals("")) { strWhere += "and b.group_name like '%" + groupName.Trim() + "%' "; } if (enabled != null && !enabled.Trim().Equals("")) { strWhere += "and b.enabled = '" + enabled.Trim() + "' "; } strWhere += " and b.factory_id = " + factoryId + " "; String orderBy = " order by b.group_code "; return repository.getExportList(strWhere, orderBy); } /// /// 导入零件免检 /// public Hashtable ImportExcel(List inputStream, int factoryId, string factoryCode, int empId) { try { Hashtable result = new Hashtable(); List SqlStrings = new List(); List Parameters = new List(); 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 groupCode = inputStream[i].GroupCode.ToString(); PullGroup sysExemptions = repository.ifExistsPullGroup(groupCode); if (sysExemptions == null) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.wms_pulling_group "); SqlStringBuilder.Append(" (group_code,group_name "); SqlStringBuilder.Append(" ,pulling_type,pdline_id "); SqlStringBuilder.Append(" ,pdline_code,kitting_qty "); SqlStringBuilder.Append(" ,triggerValue,pullValue "); SqlStringBuilder.Append(" ,factory_id,factory_code "); SqlStringBuilder.Append(" ,enabled,create_userid "); SqlStringBuilder.Append(" ,create_time,guid) "); SqlStringBuilder.Append(" VALUES(@groupCode,@groupName "); SqlStringBuilder.Append(" ,@pullingType,@pdlineId "); SqlStringBuilder.Append(" ,@pdlineCode,@kittingQty "); SqlStringBuilder.Append(" ,@triggerValue,@pullValue "); SqlStringBuilder.Append(" ,@factoryId,@factoryCode "); SqlStringBuilder.Append(" ,@enabled,@createUserid "); SqlStringBuilder.Append(" ,@createTime,@guid) "); Params = new DynamicParameters(); Params.Add("@groupCode", groupCode); Params.Add("@groupName", inputStream[i].GroupName); if (inputStream[i].PullingType == "JIT蓝卡队列") { Params.Add("@pullingType", "10"); } else if (inputStream[i].PullingType == "JIT指示票队列") { Params.Add("@pullingType", "20"); } else { result.Add("message", "导入失败,拉动组类型不存在,请检查"); result.Add("flag", "error"); return result; } SysPdline sysPdline = repository.GetPdlineByPdlineCode(inputStream[i].PdlineCode); if (sysPdline != null) { Params.Add("@pdlineId", sysPdline.PdlineId); Params.Add("@pdlineCode", sysPdline.PdlineCode); } else { result.Add("message", "导入失败,产线代码不存在,请检查"); result.Add("flag", "error"); return result; } Params.Add("@triggerValue", inputStream[i].TriggerValue); Params.Add("@pullValue", inputStream[i].PullValue); Params.Add("@kittingQty", inputStream[i].KittingQty); 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")); Params.Add("@guid", Guid.NewGuid().ToString()); SqlStrings.Add(SqlStringBuilder.ToString()); Parameters.Add(Params); } PullGroup sysPullGroupPart = repository.ifExistsPullGroupPart(groupCode, inputStream[i].PartNo); if (sysPullGroupPart == null) { StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("INSERT INTO dbo.wms_pulling_group_part "); SqlStringBuilder.Append(" (group_code,group_name "); SqlStringBuilder.Append(" ,part_id,part_no "); SqlStringBuilder.Append(" ,part_spec,pull_qty "); SqlStringBuilder.Append(" ,factory_id,factory_code "); SqlStringBuilder.Append(" ,enabled,create_userid "); SqlStringBuilder.Append(" ,create_time,guid) "); SqlStringBuilder.Append(" VALUES(@groupCode,@groupName "); SqlStringBuilder.Append(" ,@partId,@partNo "); SqlStringBuilder.Append(" ,@partSpec,@pullQty "); SqlStringBuilder.Append(" ,@factoryId,@factoryCode "); SqlStringBuilder.Append(" ,@enabled,@createUserid "); SqlStringBuilder.Append(" ,@createTime,@guid) "); Params = new DynamicParameters(); Params.Add("@groupCode", groupCode); Params.Add("@groupName", inputStream[i].GroupName); List sysParts = repository.GetPartNoInfo(inputStream[i].PartNo); if (sysParts != null) { Params.Add("@partId", sysParts[0].PartId); Params.Add("@partNo", sysParts[0].PartNo); Params.Add("@partSpec", sysParts[0].PartSpec); } else { result.Add("message", "导入失败,产线代码不存在,请检查"); result.Add("flag", "error"); return result; } Params.Add("@pullQty", inputStream[i].PullQty); 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")); Params.Add("@guid", Guid.NewGuid().ToString()); SqlStrings.Add(SqlStringBuilder.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; } } } }