public List<AscmGetMaterialCreateTask> createTasks(List<AscmDiscreteJobs> list) { string date = DateTime.Now.Date.ToString("yyyy-MM-dd"); int iCount = YnDaoHelper.GetInstance().nHibernateHelper.GetCount("select count(*) from AscmGetMaterialTask where createTime like '" + date + "%'"); List<AscmGetMaterialCreateTask> listTasks = new List<AscmGetMaterialCreateTask>(); foreach (AscmDiscreteJobs ascmDiscreteJobs in list) { if (ascmDiscreteJobs.listAscmWipBom == null) ascmDiscreteJobs.listAscmWipBom = new List<AscmWipRequirementOperations>(); foreach (AscmWipRequirementOperations ascmWipRequirementOperations in ascmDiscreteJobs.listAscmWipRequirementOperations) { if (ascmDiscreteJobs.status == AscmDiscreteJobs.StatusDefine.defaultvalue) { AscmGetMaterialCreateTask task = new AscmGetMaterialCreateTask(); if(task.ascmDiscreteJobsList == null) task.ascmDiscreteJobsList = new List<AscmDiscreteJobs>(); task.taskId = getTaskId(iCount + listTasks.Count + 1); task.IdentificationId = ascmDiscreteJobs.identificationId; task.productLine = ascmDiscreteJobs.productLine; task.warehouserId = ascmWipRequirementOperations.supplySubinventory; task.materialDocNumber = ((ascmWipRequirementOperations.ascmMaterialItem) == null) ? null : ascmWipRequirementOperations.ascmMaterialItem.docNumber; task.materialType = ascmWipRequirementOperations.wipSupplyType; task.dateReleased = ascmWipRequirementOperations.ascmWipDiscreteJobs.scheduledStartDate; switch (task.IdentificationId) { case 1://总装 task.categoryStatus = ((ascmWipRequirementOperations.ascmMaterialItem) == null) ? null : ((AscmCommonHelperService.GetInstance().JudgeSpecWmRelatedMaterial(task.warehouserId, task.materialDocNumber)) ? "" : ascmWipRequirementOperations.ascmMaterialItem.zMtlCategoryStatus); break; case 2://电装 task.categoryStatus = ((ascmWipRequirementOperations.ascmMaterialItem) == null) ? null : ((AscmCommonHelperService.GetInstance().JudgeSpecWmRelatedMaterial(task.warehouserId, task.materialDocNumber)) ? "" : ascmWipRequirementOperations.ascmMaterialItem.dMtlCategoryStatus); break; } task.uploadDate = DateTime.Parse(ascmDiscreteJobs.time).ToString("yyyy-MM-dd"); task.taskTime = string.IsNullOrEmpty(ascmDiscreteJobs.onlineTime) ? "上午" : ascmDiscreteJobs.onlineTime; task.warehouserPlace = ((ascmWipRequirementOperations.ascmWarehouse) == null) ? null : ascmWipRequirementOperations.ascmWarehouse.description; task.rankMan = ascmDiscreteJobs.workerId; task.rankManName = ascmDiscreteJobs.rankerName; task.which = ascmDiscreteJobs.which; if (!string.IsNullOrEmpty(task.IdentificationId.ToString()) && !string.IsNullOrEmpty(task.productLine) && !string.IsNullOrEmpty(task.warehouserId) && !string.IsNullOrEmpty(task.materialDocNumber) && !string.IsNullOrEmpty(task.materialType.ToString()) && !string.IsNullOrEmpty(task.taskTime) && !string.IsNullOrEmpty(task.uploadDate) && !string.IsNullOrEmpty(task.rankMan) && !string.IsNullOrEmpty(task.which.ToString())) { if (task.categoryStatus == "PRESTOCK" || task.categoryStatus == "MIXSTOCK" || task.categoryStatus == "") { #region switch (task.IdentificationId) { case 1://总装 if ((task.warehouserId.Substring(0, 4).ToUpper() == "W112") && (task.materialDocNumber.Substring(0, 4) == "2014")) { //W112开头的压缩机 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "B631") && (task.materialType == 1)) { //B631开头的子库且为推式 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.materialDocNumber = null; task.categoryStatus = null; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "B632") && (task.materialType == 1)) { //B632开头的子库且为推式 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.materialDocNumber = null; task.categoryStatus = null; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "E221") && (task.materialType == 1)) { //E221开头的子库且为推式 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.materialDocNumber = null; task.categoryStatus = null; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "E222") && (task.materialType == 1)) { //E222开头的子库且为推式 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.materialDocNumber = null; task.categoryStatus = null; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if ((task.warehouserId.Substring(0, 1).ToUpper() == "W") && (task.materialType == 1) && (task.warehouserId.Substring(0,4).ToUpper().ToString() != "W412")) { //以W开头的字库且为推式 if (task.categoryStatus == "PRESTOCK")//需备料 { if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if (task.categoryStatus == "MIXSTOCK")//需配料 { if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.materialDocNumber = null; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } } break; case 2://电装 if ((task.warehouserId.Substring(0, 4).ToUpper() == "B631") && (task.materialType == 1)) { //B631开头的子库且为推式 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.materialDocNumber = null; task.taskTime = null; task.categoryStatus = null; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "B632") && (task.materialType == 1)) { //B632开头的子库且为推式 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.materialDocNumber = null; task.taskTime = null; task.categoryStatus = null; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } else if ((task.warehouserId.Substring(0, 1).ToUpper() == "W") && (task.materialType == 1) && (task.warehouserId.Substring(0, 4).ToUpper().ToString() != "W412")) { //W开头的子库且为推式 if (contains(listTasks, task) == null) { AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); task.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); task.productLine = null; task.materialDocNumber = null; task.taskTime = null; task.categoryStatus = "MIXSTOCK"; listTasks.Add(task); } else { //任务存在 获取该任务 AscmGetMaterialCreateTask existTask = contains(listTasks, task); if (containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs) == null) { //任务不包含作业 AscmDiscreteJobs ascm_DiscreteJobs = (AscmDiscreteJobs)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(ascmDiscreteJobs), typeof(AscmDiscreteJobs)); ascm_DiscreteJobs.listAscmWipBom.Add(ascmWipRequirementOperations); existTask.ascmDiscreteJobsList.Add(ascm_DiscreteJobs); } else { //任务包含作业 AscmDiscreteJobs existJob = containsJob(existTask.ascmDiscreteJobsList, ascmDiscreteJobs); existJob.listAscmWipBom.Add(ascmWipRequirementOperations); } } } break; } #endregion } } } } } return listTasks; }
public AscmGetMaterialCreateTask contains(List<AscmGetMaterialCreateTask> listTasks, AscmGetMaterialCreateTask task) { if (listTasks.Count == 0) return null; switch (task.IdentificationId) { case 1://总装 if ((task.warehouserId.Substring(0, 4).ToUpper() == "W112") && (task.materialDocNumber.Substring(0, 4) == "2014")) { //W112开头的压缩机 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.materialDocNumber == task.materialDocNumber) && (item.categoryStatus == task.categoryStatus) && (item.productLine == task.productLine) && (item.uploadDate == task.uploadDate) && (item.taskTime == task.taskTime) && (item.which == task.which)) return item; } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "B631") && (task.materialType == 1)) { //B631开头的子库且为推式 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.uploadDate == task.uploadDate) && (item.taskTime == task.taskTime) && (item.productLine == task.productLine) && (item.which == task.which)) return item; } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "B632") && (task.materialType == 1)) { //B632开头的子库且为推式 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.uploadDate == task.uploadDate) && (item.taskTime == task.taskTime) && (item.productLine == task.productLine) && (item.which == task.which)) return item; } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "E221") && (task.materialType == 1)) { //E221开头的子库且为推式 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.uploadDate == task.uploadDate) && (item.taskTime == task.taskTime) && (item.productLine == task.productLine) && (item.which == task.which)) return item; } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "E222") && (task.materialType == 1)) { //E222开头的子库且为推式 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.uploadDate == task.uploadDate) && (item.taskTime == task.taskTime) && (item.productLine == task.productLine) && (item.which == task.which)) return item; } } else if ((task.warehouserId.Substring(0, 1).ToUpper() == "W") && (task.materialType == 1)) { //以W开头的字库且为推式 if (task.categoryStatus == "PRESTOCK")//需备料 { foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.materialDocNumber == task.materialDocNumber) && (item.categoryStatus == task.categoryStatus) && (item.uploadDate == task.uploadDate) && (item.taskTime == task.taskTime) && (item.which == task.which)) return item; } } else if (task.categoryStatus == "MIXSTOCK")//需配料 { foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.categoryStatus == task.categoryStatus) && (item.productLine == task.productLine) && (item.uploadDate == task.uploadDate) && (item.taskTime == task.taskTime)) return item; } } } break; case 2://电装 if ((task.warehouserId.Substring(0, 4).ToUpper() == "B631") && (task.materialType == 1)) { //B631开头的子库且为推式 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.uploadDate == task.uploadDate) && (item.productLine == task.productLine) && (item.which == task.which)) return item; } } else if ((task.warehouserId.Substring(0, 4).ToUpper() == "B632") && (task.materialType == 1)) { //B632开头的子库且为推式 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.uploadDate == task.uploadDate) && (item.productLine == task.productLine) && (item.which == task.which)) return item; } } else if ((task.warehouserId.Substring(0, 1).ToUpper() == "W") && (task.materialType == 1)) { //W开头的子库且为推式 foreach (AscmGetMaterialCreateTask item in listTasks) { if ((item.rankMan == task.rankMan) && (item.IdentificationId == task.IdentificationId) && (item.warehouserId == task.warehouserId) && (item.uploadDate == task.uploadDate) && (item.which == task.which)) return item; } } break; } return null; }