From 9a8168790e0d6b8601b0f7f5557976358677eeb1 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 19 5月 2025 08:00:50 +0800
Subject: [PATCH] 22

---
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs                         |  132 ++++++++++++++++++++++++++
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickInput.cs                |    5 +
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickOutput.cs               |   31 ++++++
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs                                |    4 
 PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Views/Pages/PipeAccessoryPick/PipeAccessoryPick.tsx |   77 +++++++++------
 PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Models/Service/PipeAccessoryPick.ts                 |    5 +
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs                          |   45 ++++++++
 7 files changed, 263 insertions(+), 36 deletions(-)

diff --git a/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Models/Service/PipeAccessoryPick.ts b/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Models/Service/PipeAccessoryPick.ts
index 23b4619..ce3958c 100644
--- a/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Models/Service/PipeAccessoryPick.ts
+++ b/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Models/Service/PipeAccessoryPick.ts
@@ -62,6 +62,11 @@
   return request.post('/api/v1/PipeLineLems/WorkPlan/FindSingleByFilter', data)
 }
 
+
+export const getPickRet = (data: any) => {
+  return request.post('/api/v1/PipeLineLems/WorkPlanPublic/getPickRet', data)
+}
+
 /**
  * 鏍规嵁 浠诲姟缂栧彿杩涜寮�宸�
  * @returns
diff --git a/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Views/Pages/PipeAccessoryPick/PipeAccessoryPick.tsx b/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Views/Pages/PipeAccessoryPick/PipeAccessoryPick.tsx
index 7261c72..11339fe 100644
--- a/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Views/Pages/PipeAccessoryPick/PipeAccessoryPick.tsx
+++ b/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryPick/Views/Pages/PipeAccessoryPick/PipeAccessoryPick.tsx
@@ -17,9 +17,8 @@
   getPlaceNoForStockList,
   getMaterialModelList,
   instock,
-  findSingleWorkPlanByFilter,
-  pick,
-  finishProduction
+  getPickRet,
+  pick
 } from '@/widgets/PipeAccessoryPick/Models/Service/PipeAccessoryPick'
 import { Message } from '@element-plus/icons-vue/dist/types'
 
@@ -30,6 +29,7 @@
 const queryForm = ref({
   pipeSpecCode: '',
   continerNo:'',
+  placeNo:'',
   processRouteNumber: '',
   taskCode: '',
   length: '',
@@ -104,12 +104,13 @@
         processName:'瑁呴厤宸ュ簭',
         processName_FilterMode:2,//绮惧噯鏌ヨ
       }
-      const workPlan = await findSingleWorkPlanByFilter(param);
+      const workPlan = await getPickRet(param);
       console.log('杩斿洖:'+workPlan);
-      if(workPlan==''){
+      if(workPlan.code!="200"){
         ElMessage.error('娌℃湁鎵惧埌鏁版嵁'); 
         queryForm.value ={ pipeSpecCode: '',
           continerNo:'',
+          placeNo:'',
           processRouteNumber: '',
           taskCode: '',
           length: '',
@@ -124,7 +125,10 @@
           processName: '',
           equipmentCode: ''}
       }else{
-        queryForm.value=workPlan;
+        queryForm.value=workPlan.data.workPlan;
+
+        queryForm.value.placeNo=workPlan.data.placeNo;
+        queryForm.value.continerNo=workPlan.data.continerNo;
       }
     };
 
@@ -146,40 +150,44 @@
                 const param={
                   pipeSpecCode:queryForm.value.pipeSpecCode,
                   continerNo:queryForm.value.continerNo,
+                  placeNo:queryForm.value.placeNo
                 };
+                
                 const ret = await pick(param);
       console.log('杩斿洖:'+ret);
-                if(ret.code="200"){
+      
+                if(ret.code=="200"){
                   ElMessage.success('鍒嗘嫞鎴愬姛'); 
                 }else{
                   ElMessage.error('鍒嗘嫞澶辫触:'+ret.message); 
                 }
               }) 
     } 
-    // 瀹屽伐浜嬩欢澶勭悊
-    const finishWork = () => {
-      console.log('鎵ц寮�宸ユ搷浣�');
-      if(queryForm.value.pipeSpecCode==''){
-        ElMessage.error('璇疯緭鍏ョ娈电紪鐮�'); 
-        return
-      }
-      ConfirmBox( 
-                `纭畾瑕佸皢绠℃缂栫爜${queryForm.value.pipeSpecCode}瀹屽伐鍚梎 
-              ).then(async () => { 
-                //鎮ㄧ殑涓氬姟閫昏緫
-                const param={
-                  pipeSpecCode:queryForm.value.pipeSpecCode,
-                  processName:queryForm.value.processName,
-                };
-                const ret = await finishProduction(param);
-      console.log('杩斿洖:'+ret);
-                if(ret.code="200"){
-                  ElMessage.success('瀹屽伐鎴愬姛'); 
-                }else{
-                  ElMessage.error('瀹屽伐澶辫触:'+ret.message); 
-                }
-              }) 
-    }
+    // // 瀹屽伐浜嬩欢澶勭悊
+    // const finishWork = () => {
+    //   console.log('鎵ц寮�宸ユ搷浣�');
+    //   if(queryForm.value.pipeSpecCode==''){
+    //     ElMessage.error('璇疯緭鍏ョ娈电紪鐮�'); 
+    //     return
+    //   }
+    //   ConfirmBox( 
+    //             `纭畾瑕佸皢绠℃缂栫爜${queryForm.value.pipeSpecCode}瀹屽伐鍚梎 
+    //           ).then(async () => { 
+    //             //鎮ㄧ殑涓氬姟閫昏緫
+    //             const param={
+    //               pipeSpecCode:queryForm.value.pipeSpecCode,
+    //               processName:queryForm.value.processName,
+
+    //             };
+    //             const ret = await finishProduction(param);
+    //   console.log('杩斿洖:'+ret);
+    //             if(ret.code="200"){
+    //               ElMessage.success('瀹屽伐鎴愬姛'); 
+    //             }else{
+    //               ElMessage.error('瀹屽伐澶辫触:'+ret.message); 
+    //             }
+    //           }) 
+    // }
     const tableData = ref([
       { sequence: 1, flangeA: 'RF-200-1.6MPa', flangeB: 'WN-200-1.6MPa' },
       { sequence: 2, flangeA: 'WN-250-2.5MPa', flangeB: 'SO-250-2.5MPa' },
@@ -215,6 +223,13 @@
                     class={styles.formInput}
                   />
                 </ElFormItem>
+                <ElFormItem label="搴撲綅鍙�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;">
+                  <ElInput
+                    v-model={queryForm.value.placeNo}
+                    clearable
+                    class={styles.formInput}
+                  />
+                </ElFormItem>
           <div class={styles.actionButtons}>
             <ElButton type="warning" onClick={startWork}>鍒嗘嫞</ElButton>
             {/* <ElButton type="warning" onClick={finishWork}>瀹屽伐</ElButton> */}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickInput.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickInput.cs
index 092fd0e..eaff4d9 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickInput.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickInput.cs
@@ -23,6 +23,11 @@
         /// </summary>
         public string ContinerNo { get; set; }
 
+        /// <summary>
+        /// 搴撲綅鍙�
+        /// </summary>
+        public string PlaceNo { get; set; }
+
 
     }
 }
\ No newline at end of file
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickOutput.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickOutput.cs
new file mode 100644
index 0000000..f6159a8
--- /dev/null
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickOutput.cs
@@ -0,0 +1,31 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan
+{
+    /// <summary>
+    /// 鍒嗘嫞杈撳嚭鍙傛暟妯″瀷
+    /// </summary>
+    [Serializable]
+    public class PickOutput
+    {
+
+        public WorkPlanDto WorkPlan { get; set; }
+
+
+        /// <summary>
+        /// 鍒嗘嫞鎵樼洏鍙�
+        /// </summary>
+        public string ContinerNo { get; set; }
+
+        /// <summary>
+        /// 搴撲綅鍙�
+        /// </summary>
+        public string PlaceNo { get; set; }
+
+
+    }
+}
\ No newline at end of file
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
index 884a9c5..ff26b90 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -31,6 +31,7 @@
 using CMS.Plugin.HIAWms.Abstractions;
 using Newtonsoft.Json;
 using CmsQueryExtensions;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks;
 
 namespace CMS.Plugin.PipeLineLems.Application.Implements;
 
@@ -62,6 +63,7 @@
         //3銆佸啓鍏� 鍒嗘嫞鍙橀噺
         //4銆佸啓鍏ヨ拷婧姤琛�
         //5銆佺墿鏂欑粍鐩�
+
 
         VariableService _variableService = _serviceProvider.GetRequiredService<VariableService>();
         var _workSectionManager = _serviceProvider.GetRequiredService<IWorkSectionManager>();
@@ -112,8 +114,47 @@
         var firstWorkPlans = await workPlanAppService.GetListByFilterAsync(x => x.PipeSpecCode == input.PipeSpecCode);
 
         var firstWorkPlan = await workPlanAppService.GetSingleByFilterAsync(x => x.PipeSpecCode == input.PipeSpecCode);
-
         var callMaterialOrder = await callMaterialOrderAppService.GetSingleByFilterAsync(x => x.DataIdentifier == firstWorkPlan.DataIdentifier);
+        //TODO:杩欓噷璋冪敤wms鐨勫彨鏂欐帴鍙�
+        try
+        {
+            WmsMaterialStockCreateDto param = new WmsMaterialStockCreateDto()
+            {
+                ContainerNo = input.ContinerNo,
+                MaterialModel = firstWorkPlan.MaterialMode,
+                PlaceNo = input.PlaceNo,
+                StockNumber = 1,
+                MaterialBatch = callMaterialOrder.MaterialBatch,
+
+                RedundantField1 = firstWorkPlan.ProcessRouteNumber //鎵╁睍瀛楁鏄剧ず 宸ヨ壓娴佸悜缂栧彿
+
+            };
+            string baseUrl = @"http://127.0.0.1:18000/api/v1/HIAWms/";
+            string url = baseUrl + "LMesOperate/LMesPick";
+            string json = JsonConvert.SerializeObject(param);
+            var result = HttpApiRequest.HttpPost(url, json);
+            var res = JsonConvert.DeserializeObject<CmsApiResponse<WmsMaterialStockDto>>(result);
+            if (res.Code == 200)
+            {
+                var retData = res.Data;
+                //callMaterialOrder.MaterialBatch = retData[0].MaterialBatch;
+                //callMaterialOrder.WmsTaskNo = retData[0].TaskNo;
+                //callMaterialOrder.WmsRetResult = res.Message;
+            }
+            else
+            {
+                throw new UserFriendlyException(res.Message);
+            }
+        }
+        catch (Exception)
+        {
+
+            throw;
+        }
+
+
+
+
 
         var rawPipe_DataIdentifier = await materialProvider.FindByNameAsync("鍘熸枡绠℃爣璇�");
         var rawPipe_MaterialMode = await materialProvider.FindByNameAsync("鍘熸枡绠″瀷鍙�");
@@ -1021,6 +1062,95 @@
 
     }
 
+
+    /// <summary>
+    /// 鍒嗘嫞鏃惰幏鍙栫敓浜ц鍒掑拰鍒嗛厤鍖哄煙
+    /// </summary>
+    /// <param name="input"></param>
+    /// <param name="_serviceProvider"></param>
+    /// <param name="myCurrentUser"></param>
+    /// <returns></returns>
+    /// <exception cref="UserFriendlyException"></exception>
+    public async Task<CmsApiResponse<PickOutput>> GetPickRetAsync(GetWorkPlanInput input, IServiceProvider _serviceProvider, MyCurrentUser myCurrentUser)
+    {
+
+
+        var callMaterialOrderRepository = _serviceProvider.GetRequiredService<ICallMaterialOrderRepository>();
+        var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>();
+        var _workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>();
+        var callMaterialOrderRecordRepository = _serviceProvider.GetRequiredService<ICallMaterialOrderRecordRepository>();
+        var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
+
+        // 鏌ユ壘鏁版嵁
+
+        WorkPlanDto workPlanDto = await _workPlanAppService.FindSingleByFilterAsync(input);
+
+        //TODO:杩欓噷璋冪敤wms鐨勫彨鏂欐帴鍙�
+        try
+        {
+            List<LMesCallMaterialInput> param = new List<LMesCallMaterialInput>() {
+             new LMesCallMaterialInput(){
+
+             }
+        };
+            /*
+            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;
+                //callMaterialOrder.WmsTaskNo = retData[0].TaskNo;
+                //callMaterialOrder.WmsRetResult = res.Message;
+
+                var data = new PickOutput()
+                {
+                    WorkPlan = workPlanDto,
+                    PlaceNo = "",//寰呰祴鍊�
+                    ContinerNo = ""//寰呰祴鍊�
+                };
+
+                var response = new CmsApiResponse<PickOutput>
+                {
+                    Code = 200,
+                    Data = data,
+                    Message = "澶勭悊鎴愬姛",
+                };
+                return response;
+
+            }
+            else
+            {
+                throw new UserFriendlyException(res.Message);
+            }
+            //*/
+            //妯℃嫙
+            var data = new PickOutput()
+            {
+                WorkPlan = workPlanDto,
+                PlaceNo = "",//寰呰祴鍊�
+                ContinerNo = ""//寰呰祴鍊�
+            };
+
+            var response = new CmsApiResponse<PickOutput>
+            {
+                Code = 200,
+                Data = data,
+                Message = "澶勭悊鎴愬姛",
+            };
+            return response;
+
+        }
+        catch (Exception)
+        {
+
+            throw;
+        }
+    }
+
     /// <summary>
     /// 鐢熸垚闅忔満鐨刉msTaskNo
     /// </summary>
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
index 16f075a..ade69da 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
@@ -71,7 +71,7 @@
         /// <returns></returns> 
         [HttpPost]
         [Route("FindListByFilter")]
-        public virtual async Task<List<WorkPlanDto>> FindListByFilterAsync(GetWorkPlanInput input)
+        public virtual async Task<List<WorkPlanDto>> FindListByFilterAsync([FromBody]GetWorkPlanInput input)
         {
             return await _workPlanAppService.FindListByFilterAsync(input);
         }
@@ -82,7 +82,7 @@
         /// <returns></returns> 
         [HttpPost]
         [Route("FindSingleByFilter")]
-        public virtual async Task<WorkPlanDto> FindSingleByFilterAsync(GetWorkPlanInput input)
+        public virtual async Task<WorkPlanDto> FindSingleByFilterAsync([FromBody] GetWorkPlanInput input)
         {
 
             return await _workPlanAppService.FindSingleByFilterAsync(input);
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs
index c2ecf7d..dd87047 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs
@@ -2,6 +2,7 @@
 using CMS.Framework.AspNetCore.Users;
 using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
 using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
+using CMS.Plugin.PipeLineLems.Application.Implements;
 using CmsQueryExtensions.Entitys;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
@@ -20,7 +21,7 @@
     [Route("api/v{version:apiVersion}/PipeLineLems/[controller]")]
     public class WorkPlanPublicController : ControllerBase
     {
-
+        private readonly IWorkPlanAppService _workPlanAppService;
         private readonly IMesAppService _mesAppService;
         private readonly ICurrentUser _currentUser;
         private readonly Application.Implements.SharedService sharedService;
@@ -31,12 +32,13 @@
         /// </summary>
         /// <param name="testentitynameAppService">The testentityname application service.</param>
         public WorkPlanPublicController(IMesAppService mesAppService, ICurrentUser currentUser, Application.Implements.SharedService _sharedService,
-            IServiceProvider serviceProvider)
+            IServiceProvider serviceProvider, IWorkPlanAppService workPlanAppService)
         {
             _mesAppService = mesAppService;
             _currentUser = currentUser;
             sharedService = _sharedService;
             _serviceProvider = serviceProvider;
+            _workPlanAppService = workPlanAppService;
         }
 
         /// <summary>
@@ -166,5 +168,44 @@
                 };
             }
         }
+
+
+        /// <summary> 
+        /// 鍒嗘嫞鏃惰幏鍙栫敓浜ц鍒掑拰鍒嗛厤鍖哄煙
+        /// </summary> 
+        /// <param name="input"></param> 
+        /// <returns></returns> 
+        [HttpPost]
+        [Route("GetPickRet")]
+        public virtual async Task<CmsApiResponse<PickOutput>> GetPickRetAsync([FromBody] GetWorkPlanInput input)
+        {
+
+            //WorkPlanDto workPlanDto = await _workPlanAppService.FindSingleByFilterAsync(input);
+            ////杩欓噷瑕佽幏鍙杦ms鐨勫簱瀛橈紝鏉ュ垎鏋� 瑕佹斁鍒板摢涓墭鐩橀噷
+            //return new PickOutput()
+            //{
+            //    WorkPlan = workPlanDto,
+            //    PlaceNo = "",
+            //    ContinerNo = ""
+            //};
+            try
+            {
+                MyCurrentUser myCurrentUser = new MyCurrentUser()
+                {
+                    UserAccount = _currentUser.UserAccount,
+                    UserId = _currentUser.UserId
+                };
+                return await sharedService.GetPickRetAsync(input, _serviceProvider, myCurrentUser);
+            }
+            catch (Exception ex)
+            {
+                return new CmsApiResponse<PickOutput>()
+                {
+                    Code = 400,
+                    Message = ex.Message
+                };
+            }
+
+        }
     }
 }

--
Gitblit v1.9.3