usingHh.Mes.Common.config;usingHh.Mes.Common.log;usingHh.Mes.Common.Request;usingHh.Mes.Pojo.System;usingHh.Mes.POJO.Entity;usingHh.Mes.POJO.Response;usingHh.Mes.Service.Repository;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceHh.Mes.Service.Warehous{publicclassInventoryService:RepositorySqlSugar<base_inventory>{publicstringSelectRequestUrl(){varurlDic="UrlGetInventoriesWithPage"+ConfigRead.GetInstance.GetAppsetConnection().AppCustomExtend1;varurl=GetDictionaryDictValue(urlDic,"GetUrl");returnurl;}///<summary>///查询方法///</summary>///<paramname="pageReq">页码</param>///<paramname="model">传入的参数</param>///<returns></returns>publicResponseLoad(PageReqpageReq,base_inventorymodel){varresult=newResponse();stringorderBy=(pageReq==null||string.IsNullOrEmpty(pageReq.field))?" id desc":$"{pageReq.field} {pageReq.order} ";stringsqlWhere=SqlWhere(model);varstringBuilder=newStringBuilder();//页码,页数//Exelture不分页if(!model.Exel&&pageReq!=null){stringBuilder.Append("declare @pageIndex int,@pageSize int,@offset int");stringBuilder.AppendLine($" select @pageIndex={pageReq.page}, @pageSize={pageReq.limit}, @offset=(@pageIndex - 1) * @pageSize");}stringBuilder.AppendLine($@"selectt1.*,t2.factoryName,t3.lineName,t4.namewarehouseName,t5.MaterialNamematerialName,t6.mtTypeNamematerialTypeNamefrombase_inventoryt1leftjoinbase_factoryt2ont1.factoryCode=t2.factoryCodeleftjoinbase_linet3ont1.lineCode=t3.lineCodeleftjoinbase_warehouset4ont1.warehouseCode=t4.codeleftjoinbase_materialt5ont1.materialCode=t5.MaterialCodeleftjoinbase_material_typet6ont1.materialType=t6.mtTypeCodewhere{sqlWhere}orderby{orderBy}");//Exelture不分页if(!model.Exel){stringBuilder.AppendLine(" offset @offset row fetch next @pageSize row only ");stringBuilder.Append($@" select rowTotal= count(*) from base_inventory t1 with(nolock) where {sqlWhere}");}vards=base.Context.Ado.GetDataSetAll(stringBuilder.ToString());result.Result=ds.Tables[0];result.Count=model.Exel?(int)result.Result.Rows.Count:(int)ds.Tables[1].Rows[0]["rowTotal"];returnresult;}publicstringSqlWhere(base_inventorymodel){varstringBuilder=newStringBuilder();stringBuilder.Append(" 1=1 ");//stringBuilder.Append($" and t1.useState={(int)InventoryUseState.未套料} and t1.oddments=1 and t1.qty>0 and t5.MaterialCategory='PIPE'");if(model.id!=0)stringBuilder.Append($" and t1.id=${model.id}");if(model.lineCode!=null)stringBuilder.Append($" and t1.lineCode like '%{model.lineCode}%' ");if(model.locationCode!=null)stringBuilder.Append($" and t1.locationCode like '%{model.locationCode}%' ");if(model.materialCode!=null)stringBuilder.Append($" and t1.materialCode like '%{model.materialCode}%' ");//if(model.oddments!=null)stringBuilder.Append($" and t1.oddments = 1 ");if(!string.IsNullOrEmpty(model.pipeSN))stringBuilder.Append($" and t1.pipeSN like '%{model.pipeSN}%'");if(!string.IsNullOrEmpty(model.zoneCode))stringBuilder.Append($" and t1.zoneCode ='{model.zoneCode}'");returnstringBuilder.ToString();}///<summary>///库存盘点///</summary>///<returns></returns>publicdynamicInventoryCheck(List<base_inventory>model){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{model.ForEach(x=>{x.updateBy=sysWebUser?.Account;x.updateTime=DateTime.Now;});#region提交的数据管材SN是否有重复数据,提交的管材sn是否存在数据库varfields=model.Select(x=>x.pipeSN).Distinct();varpipeSNArr=fieldsasstring[]??fields.ToArray();varstrPipeSn=string.Join(",",pipeSNArr);if(pipeSNArr.Length!=model.Count)returnresponse.ResponseError("库存盘点:提交的数据管材SN存在重复的数据:"+strPipeSn);//varpipeSnList=base.Context.Queryable<inventory>().Where(it=>pipeSNArr.Contains(it.pipeSN)).Select(x=>x.pipeSN).ToList();//if(pipeSnList.Count>0)//{//returnresponse.ResponseError("库存盘点:管材SN数据库已存在重复的SN:"+strPipeSn);//}#endregionvarresult=base.Context.Updateable(model).UpdateColumns(x=>new{x.qty,x.pipeLength,x.locationCode,//x.furnaceNo,//x.lotNo,x.batchNo}).ExecuteCommand();if(result<=0)response.Message=SystemVariable.dataActionError;returnresponse;});}///<summary>///导出///</summary>publicdynamicExportData(base_inventoryentity){returnExceptionsHelp.Instance.ExecuteT(()=>{varresult=newResponse();vards=Load(null,entity);if(ds==null||ds.Count==0){result.Result="[]";result.Count=0;}else{result.Result=ds.Result;result.Count=ds.Count;}returnresult;},catchRetrunValue:"list");}}}