222
schangxiang@126.com
2025-05-16 51441c716afe303d6d8f1aba76406a4fd39b084a
222
已添加4个文件
已修改6个文件
289 ■■■■■ 文件已修改
CommonDLL/CmsQueryExtensions.dll 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/hiawms_web/.vscode/settings.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/LMesOperateController.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/CallMaterialOrder/MyCallMaterialOutput.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/CMS.Plugin.PipeLineLems.Application.csproj 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMS.Plugin.PipeLineLems.csproj 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMSPluginEntry.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/queryExtensions/CmsQueryExtensions/Entitys/CmsApiResponse.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/queryExtensions/CmsQueryExtensions/Utils/HttpApiRequest.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommonDLL/CmsQueryExtensions.dll
Binary files differ
HIAWms/hiawms_web/.vscode/settings.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
{}
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/LMesOperateController.cs
@@ -1,6 +1,7 @@
using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CmsQueryExtensions.Entitys;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
@@ -32,9 +33,29 @@
        /// <returns></returns>
        [HttpPost]
        [Route("LMesCallMaterial")]
        public async Task<List<CallMaterialOutput>> LMesCallMaterialAsync(List<LMesCallMaterialInput> input)
        public async Task<CmsApiResponse<List<CallMaterialOutput>>> LMesCallMaterialAsync(List<LMesCallMaterialInput> input)
        {
            return await _mesOperateAppService.LMesCallMaterialAsync(input);
            try
            {
                var list = await _mesOperateAppService.LMesCallMaterialAsync(input);
                return new CmsApiResponse<List<CallMaterialOutput>>()
                {
                    Data = list,
                    Code = 200,
                    Message = "LMes叫料成功"
                };
            }
            catch (Exception ex)
            {
                //throw; //不要抛出异常,否则对方会接收失败呢
                return new CmsApiResponse<List<CallMaterialOutput>>()
                {
                    Data = null,
                    Code = 500,
                    Message = ex.Message
                };
            }
        }
    }
}
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/CallMaterialOrder/MyCallMaterialOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Entities;
namespace CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.CallMaterialOrder
{
    /// <summary>
    /// å«æ–™è¿”回
    /// </summary>
    public class MyCallMaterialOutput : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
    {
        public string MaterialNo { get; set; }
        /// <summary>
        /// ç¼–号
        /// </summary>
        public virtual string MaterialId { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        public virtual string MaterialName { get; set; }
        /// <summary>
        /// å®¹å™¨ç¼–号
        /// </summary>
        public string ContainerNo { get; set; }
        /// <summary>
        /// ç‰©æ–™æ‰¹æ¬¡
        /// </summary>
        public string MaterialBatch { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        public string MaterialModel { get; set; }
        /// <summary>
        /// åº“位编号
        /// </summary>
        public string PlaceNo { get; set; }
        /// <summary>
        /// å…¥åº“æ—¶é—´
        /// </summary>
        public DateTime? InStockTime { get; set; }
        /// <summary>
        /// ä»»åŠ¡å·
        /// </summary>
        public string TaskNo { get; set; }
        /// <summary>
        /// æ¥æºå•据号
        /// </summary>
        public string? SourceOrderNo { get; set; }
        /// <summary>
        /// PLC任务号
        /// </summary>
        public int PlcTaskId { get; set; }
        public string ConcurrencyStamp
        {
            get
            ;
            set;
        }
    }
}
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/CMS.Plugin.PipeLineLems.Application.csproj
@@ -19,6 +19,15 @@
    </ItemGroup>
    <ItemGroup>
      <Reference Include="CMS.Plugin.HIAWms.Abstractions">
        <HintPath>..\..\..\..\..\..\Program Files\CMS Editor\plugins\cms.plugin.hiawms\net6.0\CMS.Plugin.HIAWms.Abstractions.dll</HintPath>
      </Reference>
      <Reference Include="CMS.Plugin.HIAWms.Application">
        <HintPath>..\..\..\..\..\..\Program Files\CMS Editor\plugins\cms.plugin.hiawms\net6.0\CMS.Plugin.HIAWms.Application.dll</HintPath>
      </Reference>
      <Reference Include="CMS.Plugin.HIAWms.Application.Contracts">
        <HintPath>..\..\..\..\..\..\Program Files\CMS Editor\plugins\cms.plugin.hiawms\net6.0\CMS.Plugin.HIAWms.Application.Contracts.dll</HintPath>
      </Reference>
      <Reference Include="CmsQueryExtensions">
        <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath>
      </Reference>
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -25,6 +25,12 @@
using CMS.Plugin.TraceManagement.Abstractions;
using CMS.Plugin.ProductManagement.Abstractions.Models;
using CMS.Plugin.MaterialManagement.Abstractions;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
using System.Collections.Generic;
using CMS.Plugin.HIAWms.Abstractions;
using Newtonsoft.Json;
using CmsQueryExtensions;
namespace CMS.Plugin.PipeLineLems.Application.Implements;
@@ -460,10 +466,38 @@
        // éªŒè¯çŠ¶æ€
        if (callMaterialOrder.CallMaterialStatus != Domain.Shared.Enums.CallMaterialStatusEnum.未执行)
        {
            throw new UserFriendlyException($"原料标识为 '{callMaterialOrder.DataIdentifier}' çš„叫料记录状态为 '{callMaterialOrder.CallMaterialStatus}',不允许叫料");
            //throw new UserFriendlyException($"原料标识为 '{callMaterialOrder.DataIdentifier}' çš„叫料记录状态为 '{callMaterialOrder.CallMaterialStatus}',不允许叫料");
        }
        //TODO:这里调用wms的叫料接口
        try
        {
            List<LMesCallMaterialInput> param = new List<LMesCallMaterialInput>() {
             new LMesCallMaterialInput(){
                     DataIdentifier=callMaterialOrder.DataIdentifier,
                      MaterialMode="Q235B-Φ89×4",
             }
        };
            string baseUrl = @"http://127.0.0.1:18000/api/v1/HIAWms/";
            string url = baseUrl + "lMesOperate/LMesCallMaterial";
            string json = JsonConvert.SerializeObject(param);
            var result = HttpApiRequest.HttpPost(url, json);
            var res = JsonConvert.DeserializeObject<CmsApiResponse<List<MyCallMaterialOutput>>>(result);
            if (res.Code == 200)
            {
                var retData = res.Data;
                callMaterialOrder.MaterialBatch = retData[0].MaterialBatch;
            }
            else {
                throw new UserFriendlyException(res.Message);
            }
        }
        catch (Exception)
        {
            throw;
        }
        // æ›´æ–°æ•°æ®
        callMaterialOrder.MaterialBatch = GenerateRandomBatch();//wms返回的原料批次
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMS.Plugin.PipeLineLems.csproj
@@ -56,6 +56,21 @@
    </ItemGroup>
    <ItemGroup>
      <Reference Include="CMS.Plugin.HIAWms.Abstractions">
        <HintPath>..\..\..\..\..\..\Program Files\CMS Editor\plugins\cms.plugin.hiawms\net6.0\CMS.Plugin.HIAWms.Abstractions.dll</HintPath>
      </Reference>
      <Reference Include="CMS.Plugin.HIAWms.Application">
        <HintPath>..\..\..\..\..\..\Program Files\CMS Editor\plugins\cms.plugin.hiawms\net6.0\CMS.Plugin.HIAWms.Application.dll</HintPath>
      </Reference>
      <Reference Include="CMS.Plugin.HIAWms.Application.Contracts">
        <HintPath>..\..\..\..\HIAWms\server\src\CMS.Plugin.HIAWms.Application.Contracts\bin\Debug\net6.0\CMS.Plugin.HIAWms.Application.Contracts.dll</HintPath>
      </Reference>
      <Reference Include="CMS.Plugin.HIAWms.Domain">
        <HintPath>..\..\..\..\..\..\Program Files\CMS Editor\plugins\cms.plugin.hiawms\net6.0\CMS.Plugin.HIAWms.Domain.dll</HintPath>
      </Reference>
      <Reference Include="CMS.Plugin.HIAWms.EntityFrameworkCore">
        <HintPath>..\..\..\..\..\..\Program Files\CMS Editor\plugins\cms.plugin.hiawms\net6.0\CMS.Plugin.HIAWms.EntityFrameworkCore.dll</HintPath>
      </Reference>
      <Reference Include="CmsQueryExtensions">
        <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath>
      </Reference>
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/CMSPluginEntry.cs
@@ -24,6 +24,12 @@
using Volo.Abp.Modularity.PlugIns;
using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
using CMS.Plugin.PipeLineLems.Application.Implements;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CMS.Plugin.HIAWms.Application.Implements;
using CMS.Plugin.HIAWms.Domain.WmsTask;
using CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories;
using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CMS.Plugin.HIAWms.Abstractions;
namespace CMS.Plugin.PipeLineLems;
@@ -51,6 +57,13 @@
        context.Services.AddSingleton<IProjectService, PipeLineLemsProjectService>();
        context.Services.AddScoped<IMesAppService, MesAppService>();
        context.Services.AddScoped<IWorkPlanAppService, WorkPlanAppService>();
        //context.Services.AddScoped<ILMesOperateAppService, LMesOperateAppService>();
        //context.Services.AddScoped<IWmsTaskRepository, EfCoreWmsTaskRepository>();
        //context.Services.AddScoped<IWmsMaterialRepository, EfCoreWmsMaterialRepository>();
        //context.Services.AddScoped<IWmsInOutStockOrderAppService, WmsInOutStockOrderAppService>();
        //context.Services.AddScoped<IWmsOutStockAppService, WmsOutStockAppService>();
        context.Services.AddScoped<IEFDataProvider>(p =>
        {
Weben_CMSרÓôúÂëÉú³ÉÆ÷/queryExtensions/CmsQueryExtensions/Entitys/CmsApiResponse.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
using System;
namespace CmsQueryExtensions.Entitys;
/// <summary>
/// CMS的API å“åº”实体类
/// </summary>
public class CmsApiResponse<T>
{
    /// <summary>
    /// é”™è¯¯ä¿¡æ¯ï¼ˆå¦‚ "该型号物料信息不存在")
    /// </summary>
    public string Message { get; set; }
    /// <summary>
    /// è¿”回的数据(可能为 null)
    /// </summary>
    public T Data { get; set; }
    /// <summary>
    /// è‡ªå®šä¹‰çŠ¶æ€ç ï¼ˆå¦‚ 200 è¡¨ç¤ºæˆåŠŸï¼Œä½†ä¸šåŠ¡é€»è¾‘å¯èƒ½è¿”å›žé”™è¯¯ï¼‰
    /// </summary>
    public int Code { get; set; } = 200;
}
///// <summary>
///// é”™è¯¯è¯¦æƒ…实体类
///// </summary>
//public class ResponseError
//{
//    /// <summary>
//    /// é”™è¯¯ä»£ç ï¼ˆå¯èƒ½ä¸º null)
//    /// </summary>
//    public string Code { get; set; }
//    /// <summary>
//    /// é”™è¯¯æ¶ˆæ¯ï¼ˆå¦‚ "该型号物料信息不存在")
//    /// </summary>
//    public string Message { get; set; }
//    /// <summary>
//    /// é”™è¯¯è¯¦æƒ…(可能为空)
//    /// </summary>
//    public string Details { get; set; }
//    /// <summary>
//    /// é¢å¤–数据(可能为 null)
//    /// </summary>
//    public object Data { get; set; }
//    /// <summary>
//    /// éªŒè¯é”™è¯¯ï¼ˆå¯èƒ½ä¸º null)
//    /// </summary>
//    public object ValidationErrors { get; set; }
//}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/queryExtensions/CmsQueryExtensions/Utils/HttpApiRequest.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
// éº»çœç†å·¥å­¦é™¢è®¸å¯è¯
//
// ç‰ˆæƒæ‰€æœ‰ (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  è”系电话/微信:18020030720  QQ:515096995
//
// ç‰¹æ­¤å…è´¹æŽˆäºˆèŽ·å¾—æœ¬è½¯ä»¶çš„ä»»ä½•äººä»¥å¤„ç†æœ¬è½¯ä»¶çš„æƒåˆ©ï¼Œä½†é¡»éµå®ˆä»¥ä¸‹æ¡ä»¶ï¼šåœ¨æ‰€æœ‰å‰¯æœ¬æˆ–é‡è¦éƒ¨åˆ†çš„è½¯ä»¶ä¸­å¿…é¡»åŒ…æ‹¬ä¸Šè¿°ç‰ˆæƒå£°æ˜Žå’Œæœ¬è®¸å¯å£°æ˜Žã€‚
//
// è½¯ä»¶æŒ‰â€œåŽŸæ ·â€æä¾›ï¼Œä¸æä¾›ä»»ä½•å½¢å¼çš„æ˜Žç¤ºæˆ–æš—ç¤ºçš„ä¿è¯ï¼ŒåŒ…æ‹¬ä½†ä¸é™äºŽå¯¹é€‚é”€æ€§ã€é€‚ç”¨æ€§å’Œéžä¾µæƒçš„ä¿è¯ã€‚
// åœ¨ä»»ä½•情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
using Newtonsoft.Json;
using System.Net;
using System.Text;
namespace CmsQueryExtensions;
public class HttpApiRequest
{
    public static string HttpGet(string url)
    {
        string result = "";
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "GET";
        req.ContentType = "application/json";
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream stream = resp.GetResponseStream();
        //获取响应内容
        using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
        {
            result = reader.ReadToEnd();
        }
        return result;
    }
    public static string HttpPost(string url, string jsondata)
    {
        string result = "";
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        //  HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        req.Method = "POST";
        req.ContentType = "application/json";
        if (!string.IsNullOrWhiteSpace(jsondata))
        {
            byte[] data = Encoding.UTF8.GetBytes(jsondata);
            req.ContentLength = data.Length;
            using (Stream reqStream = req.GetRequestStream())
            {
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();
            }
        }
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream stream = resp.GetResponseStream();
        //获取响应内容
        using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
        {
            result = reader.ReadToEnd();
        }
        return result;
    }
}