222
schangxiang@126.com
2025-05-11 847e7a89974cb6f5bcfbf7fc8fbe84f085502af6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
using CMS.Plugin.FormulaManagement.Abstractions;
using CMS.Plugin.OrderManagement.Abstractions;
using CMS.Plugin.OrderManagement.Abstractions.Enums;
using CMS.Plugin.OrderManagement.Abstractions.Models;
using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
using CMS.Plugin.ProductManagement.Abstractions;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
 
namespace CMS.Plugin.PipeLineLems.Application.Implements;
 
public class MesAppService : CMSPluginAppService
{
    private readonly IServiceProvider _serviceProvider;
    private readonly WorkPlanAppService _workPlanAppService;
    private readonly SharedService _sharedService;
    //private readonly IEventBus _eventBus;
 
    public MesAppService(IServiceProvider serviceProvider
        , WorkPlanAppService workPlanAppService
        //, IEventBus eventBus
        , SharedService sharedService
        )
    {
        _serviceProvider = serviceProvider;
        // _eventBus = eventBus;
        _workPlanAppService = workPlanAppService;
        _sharedService = sharedService;
    }
 
    public async Task<MesOrderResponse> CreateAsync(List<WorkPlanInput> input)
    {
        var response = await _sharedService.CommonCreatebyApsAsync(input, _serviceProvider, _workPlanAppService);
 
        return response;
    }
    //public async Task<MesOrderResponse> CreateAsync(List<WorkPlanInput> input)
    //{
    //    if (input == null)
    //    {
    //        throw new UserFriendlyException("输入参数不能为空");
    //    }
 
    //    if (input.Count == 0)
    //    {
    //        throw new UserFriendlyException("输入参数Data不能为空");
    //    }
 
    //    var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
    //    var productProvider = _serviceProvider.GetRequiredService<IProductProvider>();
    //    var formulaProvider = _serviceProvider.GetRequiredService<IFormulaProvider>();
    //    List<OrderModel> orderModels = new List<OrderModel>();
    //    //按照任务编号分组
    //    var groupTask = input.GroupBy(x => x.TaskCode);
    //    foreach (var gTask in groupTask)
    //    {
    //        var taskCode = gTask.Key;
    //        var order = await orderManager.GetByCodeAsync(taskCode);
    //        if (order != null)
    //        {
    //            throw new UserFriendlyException($"任务编号[{taskCode}]已存在");
    //        }
 
 
    //        //var product = await productProvider.FindByNameAsync(orderItem.PipeSectionName);
    //        //if (product == null)
    //        //{
    //        //    throw new UserFriendlyException($"产品名称[{orderItem.PipeSectionName}]不存在");
    //        //}
 
    //        //var formula = await formulaProvider.GetFormulaAsync(product.Id);
    //        //if (formula == null)
    //        //{
    //        //    throw new UserFriendlyException($"产品型号[{orderItem.MaterialCode}]无关联配方");
    //        //}
    //        //首先要创建 打码切割的工单 
    //        var productForCut = await productProvider.FindByNameAsync("切割原料管");
    //        if (productForCut == null)
    //        {
    //            throw new UserFriendlyException($"产品名称[切割原料管]不存在");
    //        }
    //        var formulaForCut = await formulaProvider.GetFormulaAsync(productForCut.Id);
    //        if (formulaForCut == null)
    //        {
    //            throw new UserFriendlyException($"产品名称[切割原料管]无关联配方");
    //        }
    //        //分组数据
    //        var group = gTask.ToList().GroupBy(x => x.DataIdentifier);
    //        foreach (var item in group)
    //        {
    //            OrderModel orderModelForCut = new OrderModel()
    //            {
    //                Id = Guid.NewGuid(),
    //                Code = "Cut_" + taskCode,
    //                Source = "APS推送",
    //                PlanStartTime = gTask.ToList().First().PlannedStartTime,
    //                PlanFinishTime = gTask.ToList().First().PlannedEndTime,
    //                PlanQty = (ulong)item.ToList().Count,
    //                Status = OrderStatus.NotActive,
    //                Product = new AssociationProductModel() { Id = productForCut.Id, Name = productForCut.Name, Model = productForCut.Model, ShortNumber = productForCut.ShortNumber },
    //                Formula = new AssociationFormulaModel() { Id = formulaForCut.Id, Code = formulaForCut.Code, Name = formulaForCut.Name }
    //            };
    //            orderModelForCut.ExtraProperties["OuterDiameter"] = gTask.ToList().First().OuterDiameter;//外径
    //            orderModelForCut.ExtraProperties["Material"] = gTask.ToList().First().Material;//材质
    //            orderModelForCut.ExtraProperties["Length"] = gTask.ToList().First().Length;//长度
 
    //            var orderForCut = await orderManager.GetByCodeAsync(orderModelForCut.Code);
    //            if (orderForCut != null)
    //            {
    //                //throw new UserFriendlyException($"工单[{orderModelForCut.Code}]已存在");
    //                //不再抛异常,直接跳过
    //                break;
    //            }
 
    //            var orderModelResultForCut = await orderManager.CreateAsync(orderModelForCut);
    //            if (orderModelResultForCut == null)
    //            {
    //                throw new UserFriendlyException($"工单[{orderModelForCut.Code}]创建失败");
    //            }
    //            orderModels.Add(orderModelResultForCut);
 
 
    //            //OrderModel orderModel = new OrderModel();
    //            //orderModel.Id = Guid.NewGuid();
    //            //orderModel.Code = orderItem.TaskCode;
    //            //orderModel.Source = "APS推送";
    //            //orderModel.Product = new AssociationProductModel() { Id = product.Id, Name = product.Name, Model = product.Model, ShortNumber = product.ShortNumber };
    //            ////orderModel.Formula = new AssociationFormulaModel() { Id = formula.Id, Code = formula.Code, Name = formula.Name };
    //            //orderModel.PlanStartTime = orderItem.PlannedStartTime;
    //            //orderModel.PlanFinishTime = orderItem.PlannedEndTime;
    //            //orderModel.PlanQty = (ulong?)orderItem.OrderQty;
    //            //orderModel.Status = OrderStatus.NotActive;
    //            //orderModel.ExtraProperties["Source"] = "ddd";
    //            //var source = orderModel.ExtraProperties["Source"];
    //            //var orderModelResult = await orderManager.CreateAsync(orderModel);
    //            //if (orderModelResult == null)
    //            //{
    //            //    throw new UserFriendlyException($"工单[{orderItem.TaskCode}]创建失败");
    //            //}
    //            //orderModels.Add(orderModelResult);
    //        }
 
    //    }
 
 
    //    //保存到表中
    //    foreach (var item in input)
    //    {
    //        var insertObj = ObjectMapper.Map<WorkPlanInput, WorkPlanCreateDto>(item);
    //        //insertObj.OrgMaterialCode = "1111";
    //        insertObj.Sort = 1;
    //        await _workPlanAppService.CreateAsync(insertObj);
    //    }
 
 
    //    // 发布事件
    //    //await _eventBus.PublishAsync(new EntityChangedEto("MESCREATE", input, null, EntityChangeType.Add, true));
 
    //    var response = new MesOrderResponse
    //    {
    //        Code = "000000",
    //        Data = orderModels,
    //        Fail = false,
    //        Mesg = "处理成功",
    //        Success = true,
    //        Time = DateTime.UtcNow
    //    };
    //    return response;
    //}
}