schangxiang@126.com
2025-05-14 874ddf20325b535872488905caa648beaf9ff024
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -19,6 +19,12 @@
using CmsQueryExtensions.Entitys;
using CMS.Unit.RuntimeValue.Abstractions;
using CMS.Extensions.Variable;
using CMS.Plugin.TraceManagement.Abstractions.Models.Traces;
using CMS.Plugin.ProcessManagement.Abstractions;
using KissUtil.Extensions;
using CMS.Plugin.TraceManagement.Abstractions;
using CMS.Plugin.ProductManagement.Abstractions.Models;
using CMS.Plugin.MaterialManagement.Abstractions;
namespace CMS.Plugin.PipeLineLems.Application.Implements;
@@ -36,6 +42,11 @@
        //3、写入 分拣变量
        VariableService _variableService = _serviceProvider.GetRequiredService<VariableService>();
        var _workSectionManager = _serviceProvider.GetRequiredService<IWorkSectionManager>();
        var _workStationManager = _serviceProvider.GetRequiredService<IWorkStationManager>();
        var traceProvider = _serviceProvider.GetRequiredService<ITraceProvider>();
        var materialProvider = _serviceProvider.GetRequiredService<IMaterialProvider>();
        var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>();
        Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
                    {
@@ -44,13 +55,69 @@
                        { "分拣人", myCurrentUser.UserAccount }
                    };
        _variableService.WriteValueAsync(keyValuePairs);
        //根据工序名获取工序对象
        var workSection = await _workSectionManager.GetByNameAsync("分拣工序");
        var workStation = await _workStationManager.GetByNameAsync("分拣工位");
        //写入追溯报表
        var finishTime = DateTime.Now;
        TraceModel traceModel = new TraceModel()
        {
            SerialNumber = input.PipeSpecCode,
            WorkSectionId = workSection.Id,
            WorkSectionName = workSection.Name,
            WorkStationName = workStation.Name,
            FinishTime = finishTime,
            IsQualified = true,
            UnqualifiedReason = "",
            ProductModel = "",
            ProductName = "",
        };
        traceModel.Params = new List<TraceParamModel>();
        foreach (var item in workSection.ProcessParameters)
        {
            var value = "ssss";
            traceModel.Params.Add(new TraceParamModel()
            {
                Key = item.Key,
                Value = value.SafeString()
            });
        }
        //物料参数列表
        var firstWorkPlans = await workPlanAppService.GetListByFilterAsync(x => x.PipeSpecCode == input.PipeSpecCode);
        var firstWorkPlan = await workPlanAppService.GetSingleByFilterAsync(x => x.PipeSpecCode == input.PipeSpecCode);
        var rawPipe_DataIdentifier = await materialProvider.FindByNameAsync("分拣原料管标识");
        var rawPipe_MaterialMode = await materialProvider.FindByNameAsync("分拣原料管型号");
        List<TraceMaterialModel> _MaterialParams = new List<TraceMaterialModel>();
        _MaterialParams.Add(new TraceMaterialModel()
        {
            Key = "分拣原料管标识",
            Quantity = 1,
            MaterialId = rawPipe_DataIdentifier.MaterialId,
            MaterialDetailId = rawPipe_DataIdentifier.MaterialDetails.First().Id,
            Value = firstWorkPlan.DataIdentifier,
        });
        _MaterialParams.Add(new TraceMaterialModel()
        {
            Key = "分拣原料管型号",
            Quantity = 1,
            MaterialId = rawPipe_MaterialMode.MaterialId,
            MaterialDetailId = rawPipe_MaterialMode.MaterialDetails.First().Id,
            Value = firstWorkPlan.MaterialMode
        });
        traceModel.MaterialParams = _MaterialParams;
        await traceProvider.CreateTraceAsync(traceModel);
        var response = new MesOrderResponse
        {
            Code = "000000",
            Code = "200",
            Data = "",
            Fail = false,
            Mesg = "处理成功",
            Success = true,
            Message = "处理成功",
            Time = DateTime.UtcNow
        };
        return response;
@@ -212,6 +279,7 @@
                    CallMaterialStatus = Domain.Shared.Enums.CallMaterialStatusEnum.未执行,
                    DataIdentifier = gTask.Key,
                    MaterialMode = gTask.ToList().First().MaterialMode,
                    CreatorName = userAccount,
                    Quantity = 1
                };
@@ -230,6 +298,7 @@
                insertObj.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.未生产;
                insertObj.Sort = 1;
                insertObj.CreatorName = userAccount;
                insertObj.Remark = "系统导入";
                await workPlanAppService.CreateAsync(insertObj);
            }
@@ -260,9 +329,7 @@
        {
            Code = "000000",
            Data = orderModels,
            Fail = false,
            Mesg = "处理成功",
            Success = true,
            Message = "处理成功",
            Time = DateTime.UtcNow
        };
        return response;
@@ -385,10 +452,8 @@
        // 返回结果
        var response = new MesOrderResponse
        {
            Code = "000000",
            Fail = false,
            Mesg = "叫料成功",
            Success = true,
            Code = "200",
            Message = "叫料成功",
            Time = DateTime.UtcNow
        };
        return response;