22
schangxiang@126.com
2025-05-20 5b189017d143be6366f56ffcdd3c3699a381e034
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -8,6 +8,7 @@
using CMS.Plugin.OrderManagement.Abstractions.Models;
using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.CallMaterialOrder;
using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkTask;
using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder;
using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrderRecord;
@@ -23,6 +24,7 @@
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using Volo.Abp;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
namespace CMS.Plugin.PipeLineLems.Application.Implements;
@@ -112,6 +114,14 @@
        //TODO:这里调用wms的叫料接口
        try
        {
            //首先判断库存是否存在
            var dto = await IsExistInWms(input.PipeSpecCode);
            if (dto != null)
            {
                throw new UserFriendlyException($"已经分拣过,库存在库位{dto.PlaceNo},托盘号{dto.ContainerNo}");
            }
            WmsMaterialStockCreateDto param = new WmsMaterialStockCreateDto()
            {
                ContainerNo = input.ContinerNo,
@@ -258,6 +268,7 @@
        };
        return response;
    }
    /// <summary>
    /// 创建作业计划
    /// </summary>
@@ -266,7 +277,6 @@
    /// <param name="workPlanAppService"></param>
    /// <returns></returns>
    /// <exception cref="UserFriendlyException"></exception>
    public async Task<MesOrderResponse> CommonCreatebyApsAsync(List<WorkPlanInput> input, IServiceProvider _serviceProvider,
    WorkPlanAppService workPlanAppService,
    string userId, string userAccount
@@ -306,6 +316,8 @@
        var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
        var productProvider = _serviceProvider.GetRequiredService<IProductProvider>();
        var formulaProvider = _serviceProvider.GetRequiredService<IFormulaProvider>();
        var workTaskAppService = _serviceProvider.GetRequiredService<IWorkTaskAppService>();
        List<OrderModel> orderModels = new List<OrderModel>();
@@ -443,16 +455,36 @@
                insertObj.CreatorName = userAccount;
                insertObj.Remark = "系统导入";
                await workPlanAppService.CreateAsync(insertObj);
                //增加新增计划任务表数据 【Editby shaocx,2025-05-20】
                var org_insertTaskObj = ObjectMapper.Map<WorkPlanCreateDto, WorkTaskCreateDto>(insertObj);
                org_insertTaskObj.Son_TaskCode = insertObj.TaskCode;
                await workTaskAppService.CreateAsync(org_insertTaskObj);
                if (insertObj.ProcessName == "切割工序")
                {//新建 分拣工序
                    var insertTaskObj = ObjectMapper.Map<WorkPlanCreateDto, WorkTaskCreateDto>(insertObj);
                    insertTaskObj.Son_TaskCode = insertObj.TaskCode + "_1";
                    insertTaskObj.ProcessName = "分拣工序";
                    await workTaskAppService.CreateAsync(insertTaskObj);
                }
                else if (insertObj.ProcessName == "装配工序")
                {//新建 法兰冲码工序(多个)
                 //目前暂时搞成一个法兰
                    var insertTaskObj = ObjectMapper.Map<WorkPlanCreateDto, WorkTaskCreateDto>(insertObj);
                    insertTaskObj.Son_TaskCode = insertObj.TaskCode + "_1";
                    insertTaskObj.ProcessName = "法兰冲码工序";
                    await workTaskAppService.CreateAsync(insertTaskObj);
                }
            }
            #endregion
            await uow.CompleteAsync();
        }
        catch (Exception)
        catch (Exception ex)
        {
            await uow.RollbackAsync();
            throw;
            throw ex;
        }
        finally
        {
@@ -1150,6 +1182,50 @@
    }
    /// <summary>
    /// 管段编码是否存在库存中
    /// </summary>
    /// <param name="pipeSpecCode"></param>
    /// <returns></returns>
    /// <exception cref="UserFriendlyException"></exception>
    public async Task<WmsMaterialStockDto> IsExistInWms(string pipeSpecCode)
    {
        //TODO:这里调用wms的库存查询接口
        try
        {
            GetWmsMaterialStockInput param = new GetWmsMaterialStockInput()
            {
                RedundantField2 = pipeSpecCode,
                RedundantField2_FilterMode = SearchFilterModeEnum.精准查询
            };
            string baseUrl = @"http://127.0.0.1:18000/api/v1/HIAWms/";
            string url = baseUrl + "LMesOperate/FindListByFilter";
            string json = JsonConvert.SerializeObject(param);
            var result = HttpApiRequest.HttpPost(url, json);
            var res = JsonConvert.DeserializeObject<CmsApiResponse<List<WmsMaterialStockDto>>>(result);
            if (res.Code == 200)
            {
                var retData = res.Data as List<WmsMaterialStockDto>;
                if (retData?.Count > 0)
                {
                    return retData.First();
                }
                return null;
            }
            else
            {
                throw new UserFriendlyException(res.Message);
            };
        }
        catch (Exception)
        {
            throw;
        }
    }
    /// <summary>
    /// 生成随机的WmsTaskNo
    /// </summary>
    /// <returns>随机生成的任务编号</returns>