From e6d5b88ce459fe8414aa7a96678820cc0246326c Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-5BIMHQ3>
Date: 星期五, 01 三月 2024 16:19:30 +0800
Subject: [PATCH] Merge branch 'wxw'

---
 Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs   |   10 +
 HTML/views/SOSetting/ExportNoticeAddFrom.html    |   13 +
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs    |   72 +++++++++++
 Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs     |    2 
 Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs |    6 +
 Wms/Wms/Controllers/BllSoController.cs           |   45 +++++--
 HTML/views/SOSetting/ExportNotice.html           |  152 +++++++++++++++++++++----
 Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs    |    1 
 8 files changed, 256 insertions(+), 45 deletions(-)

diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html
index 8d5e6d6..c463ff8 100644
--- a/HTML/views/SOSetting/ExportNotice.html
+++ b/HTML/views/SOSetting/ExportNotice.html
@@ -57,11 +57,20 @@
 							<div class="layui-input-inline">
 								<select name="Type" id="Type" lay-filter="Type" lay-search>
 									<option value=""></option>
+									<!-- 24 -->
+									<option value="0">鎴愬搧鍑哄簱</option>
+									<option value="1">棰嗘枡鍑哄簱</option>
+									<option value="2">鎶芥鍑哄簱</option>
+									<option value="3">鐗╂枡鍙栨牱鍑哄簱</option>
+									<option value="4">涓嶅悎鏍煎搧鍑哄簱</option>
+									<option value="5">涓棿鍝佸嚭搴�</option>
+									<option value="6">浠e偍鍑哄簱</option>
+									<option value="7">鍏朵粬鍑哄簱</option>
 									<!-- 09 -->
-									<option value="0">鏍囧噯閿�鍞嚭搴�</option>
+									<!-- <option value="0">鏍囧噯閿�鍞嚭搴�</option>
 									<option value="1">闈炴爣閿�鍞嚭搴�</option>
 									<option value="2">鏍囧噯璋冩嫧鍑哄簱</option>
-									<option value="3">闈炴爣璋冩嫧鍑哄簱</option>
+									<option value="3">闈炴爣璋冩嫧鍑哄簱</option> -->
 									<!-- 08 -->
 									<!-- <option value="0">鎴愬搧鍑哄簱</option>
 									<option value="1">鍘熻緟鏂欏嚭搴�</option>
@@ -81,6 +90,7 @@
 									<option value="3">姝e湪鎵ц</option>
 									<option value="4">鎵ц瀹屾瘯</option>
 									<option value="5">璁㈠崟鍏抽棴</option>
+									<option value="6">宸插鏍�</option>
 								</select>
 							</div>
 						</div>
@@ -118,26 +128,49 @@
 									<option value="1">鏄�</option>
 								</select>
 							</div>
-						</div>
-						<div class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;">
-							<label class="layui-form-label">鍑哄簱鍙�</label>
-							<div class="layui-input-inline">
-								<select name="PickingArea" id="PickingArea" lay-search>
-									<option value=""></option>
-									<option value="1">1</option>
-									<option value="2">2</option>
-									<option value="3">3</option>
-									<option value="4">4</option>
-								</select>
-							</div>
-						</div>
+						</div>						
 						<div class="layui-inline">
 							<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
 								lay-filter="LAY-app-contlist-search">
 								<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>鎼滅储
 							</button>
 						</div>
-
+						<!-- 纭鍑哄簱鍙e脊绐� -->
+						<div class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;">
+							<div class="layui-inline">
+								<label class="layui-form-label">鎷嗗灈鏂瑰紡</label>
+								<div class="layui-input-inline" style="width: 220px;">
+									<select name="UnstackWay" id="UnstackWay" lay-filter="UnstackWay" lay-search>
+										<option value="0" selected>鏈哄櫒浜烘媶鍨�</option>
+										<option value="1">浜哄伐鎷嗗灈</option>
+									</select>
+								</div>
+							</div>
+							<div class="layui-inline DivLoadingArea" style="margin-top: 10px;">
+								<label class="layui-form-label">瑁呰溅鍙�</label>
+								<div class="layui-input-inline" style="width: 220px;">
+									<select name="LoadingArea" id="LoadingArea" lay-search>
+										<option value=""></option>
+										<option value="1">1</option>
+										<option value="2">2</option>
+										<option value="3">3</option>
+										<option value="4">4</option>
+									</select>
+								</div>
+							</div>							
+							<div class="layui-inline DivPickingArea2" style="margin-top: 10px;">
+								<label class="layui-form-label">鍑哄簱鍙�</label>
+								<div class="layui-input-inline" style="width: 220px;">
+									<select name="PickingArea" id="PickingArea" lay-search>
+										<option value=""></option>
+										<option value="1">1</option>
+										<option value="2">2</option>
+										<option value="3">3</option>
+										<option value="4">4</option>
+									</select>
+								</div>
+							</div>
+						</div>
 						<!-- 缁存姢澶囨敞寮规 -->
 						<div class="layui-inline" id="divEditDemo" style="display: none; padding-top: 10px;">
 							<label class="layui-form-label">澶囨敞</label>
@@ -164,13 +197,21 @@
 							{{# function GetBtn3(d){
 									switch (d.Type) {
 										case "0":
-											return "鏍囧噯閿�鍞嚭搴�";
+											return "鎴愬搧鍑哄簱";
 										case "1":
-											return "闈炴爣鍑嗛攢鍞嚭搴�";
+											return "棰嗘枡鍑哄簱";
 										case "2":
-											return "鏍囧噯璋冩嫧鍑哄簱";
+											return "鎶芥鍑哄簱";
 										case "3":
-											return "闈炴爣鍑嗚皟鎷ㄥ嚭搴�";
+											return "鐗╂枡鍙栨牱鍑哄簱";
+										case "4":
+											return "涓嶅悎鏍煎搧鍑哄簱";
+										case "5":
+											return "涓棿鍝佸嚭搴�";
+										case "6":
+											return "浠e偍鍑哄簱";
+										case "7":
+											return "鍏朵粬鍑哄簱";
 										default:
 											return "";
 									}
@@ -193,6 +234,8 @@
 										case "4":
 											return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">鎵ц瀹屾瘯</button>`;
 										case "5":
+											return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">璁㈠崟鍏抽棴</button>`;
+										case "6":
 											return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">涓婁紶瀹屾瘯</button>`;
 										default:
 											return "";
@@ -231,6 +274,14 @@
 								}	
 							}}
 							{{ GetBtn7(d) }}
+						</script>
+
+						<script type="text/html" id="templetCheckTime">
+							{{# function GetBtn8(d){
+									return formatDate(d.CheckTime);
+								}	
+							}}
+							{{ GetBtn8(d) }}
 						</script>
 						<!-- #endregion -->
 					</div>
@@ -309,10 +360,13 @@
 									html += `<a class="layui-btn layui-btn-normal layui-btn-xs guanClass" lay-event="finish"> 
 												<i class="layui-icon layui-icon-ok"></i>鍏冲崟
 											</a>`;
+								}								
+								if( d.Status == '5'){
+									html += `<a class="layui-btn layui-btn-normal layui-btn-xs shangClass" lay-event="xml"> 
+										<i class="layui-icon layui-icon-ok"></i>澶嶆牳
+									</a>`;
 								}
-								html += `<a class="layui-btn layui-btn-normal layui-btn-xs shangClass" lay-event="xml"> 
-									<i class="layui-icon layui-icon-ok"></i>XML
-								</a>`;
+								
 								html += `<a class="layui-btn layui-btn-normal layui-btn-xs editDemoClass" lay-event="editDemo">
 									<i class="layui-icon layui-icon-edit"></i>澶囨敞</a>`;
 								return html;
@@ -428,6 +482,8 @@
 							{field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center',templet: '#templetCreateTime'},
 							{field: 'UpdateUserName',title: '淇敼浜�',align: 'center'},
 							{field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',templet: '#templetUpdateTime'},
+							{field: 'CheckUserName',title: '澶嶆牳浜�',align: 'center',width: 110},
+							{field: 'CheckTime',title: '澶嶆牳鏃堕棿',align: 'center',templet: '#templetCheckTime'}, 
 							{field: 'caozuo',title: '鎿嶄綔',fixed: 'right',align: 'center',width: 200,toolbar: '#table-content-list', "disabled": true}
 						]];
 				var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
@@ -950,6 +1006,7 @@
 						$(".qufenClass").hide(); //鍙栨秷鍒嗛厤
 						$(".outClass").hide(); //鍑哄簱
 						$(".editDemoClass").hide();//澶囨敞
+						$(".checkClass").hide(); //澶嶆牳
 					});
 					sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function(res) {
 						if (res.code == 0) { //鎴愬姛 
@@ -1006,6 +1063,11 @@
 											$(".editDemoClass").show(); 
 										});
 									}
+									if (res.data[k].MenuName == "澶嶆牳鍑哄簱鍗�") {
+										$(function() {
+											$(".checkClass").show(); 
+										});
+									}
 								}
 							}
 						} else { //涓嶆垚鍔�
@@ -1039,6 +1101,7 @@
 						});
 					}
 				});
+				var isNeedUnpack='0'//鏄惁闇�瑕佹媶绠憋紝0锛氬惁  1锛氭槸
 				//鐩戝惉鏁版嵁鎿嶄綔
 				table.on('tool(LAY-app-content-list)', function(obj) {
 					var data = obj.data;
@@ -1156,13 +1219,37 @@
 							maxmin: true,
 							area: ['1200px', '90%'],
 						});
-					}else if(obj.event === 'outKu'){
+					}else if(obj.event === 'outKu'){						
+						var param = {
+							soNo: SoNo
+						};
+						sendData(IP + "/BllSo/IsNeedUnpack", param, 'get', function(res) {
+							if (res.code == 0) { //鎴愬姛
+								if(res.data=="1"){
+									isNeedUnpack='1'
+									$('.DivPickingArea2').attr("style", "display:block")
+								}else{
+									isNeedUnpack='0'
+									$('.DivPickingArea2').attr("style", "display:none")									
+								}	
+								if($('#UnstackWay').val()=='1'){
+									$('.DivPickingArea2').attr("style", "display:block")
+								}							
+							} else { //涓嶆垚鍔�
+								layer.msg(res.msg, {
+									icon: 2,
+									time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+								}, function() {
+									return;
+								});
+							}
+						});
 						layer.open({
 							type: 1,
 							title: '纭鍑哄簱鍙�',
 							content: $('#divPickingArea'),
 							maxmin: true,
-							area: ['300px','265px'],
+							area: ['350px','285px'],
 							btn: ['纭畾', '鍙栨秷'],
 							yes: function(index, layero) {
 								var pa = $('#PickingArea').val();
@@ -1376,6 +1463,21 @@
 					downloadA.click();
 					document.body.removeChild(downloadA);
 				}
+				//鎷嗗灈鏂瑰紡鍒囨崲
+				form.on('select(UnstackWay)',function(data){
+					var value = data.value;
+					if(value==0){
+						$('.DivLoadingArea').attr("style", "display:block")
+						if(isNeedUnpack=='0'){
+							$('.DivPickingArea2').attr("style", "display:none")
+						}else{
+							$('.DivPickingArea2').attr("style", "display:block")
+						}						
+					}else{						
+						$('.DivLoadingArea').attr("style", "display:none")
+						$('.DivPickingArea2').attr("style", "display:block")					
+					}    			
+				});
 
 				//#region 鑷畾涔夎〃澶�
 				//鑷畾涔夎〃澶�			
diff --git a/HTML/views/SOSetting/ExportNoticeAddFrom.html b/HTML/views/SOSetting/ExportNoticeAddFrom.html
index d056de4..0cd8b39 100644
--- a/HTML/views/SOSetting/ExportNoticeAddFrom.html
+++ b/HTML/views/SOSetting/ExportNoticeAddFrom.html
@@ -33,11 +33,20 @@
 					<div class="layui-input-inline">
 						<select name="Type" id="Type" lay-filter="Type" lay-verify="required" lay-search>
 							<option value=""></option>
+							<!-- 24 -->
+							<option value="0">鎴愬搧鍑哄簱</option>
+							<option value="1">棰嗘枡鍑哄簱</option>
+							<option value="2">鎶芥鍑哄簱</option>
+							<option value="3">鐗╂枡鍙栨牱鍑哄簱</option>
+							<option value="4">涓嶅悎鏍煎搧鍑哄簱</option>
+							<option value="5">涓棿鍝佸嚭搴�</option>
+							<option value="6">浠e偍鍑哄簱</option>
+							<option value="7">鍏朵粬鍑哄簱</option>
 							<!-- 09 -->
-							<option value="0">鏍囧噯閿�鍞嚭搴�</option>
+							<!-- <option value="0">鏍囧噯閿�鍞嚭搴�</option>
 							<option value="1">闈炴爣閿�鍞嚭搴�</option>
 							<option value="2">鏍囧噯璋冩嫧鍑哄簱</option>
-							<option value="3">闈炴爣璋冩嫧鍑哄簱</option>
+							<option value="3">闈炴爣璋冩嫧鍑哄簱</option> -->
 							<!-- 08 -->
 							<!-- <option value="0">鎴愬搧鍑哄簱</option>
 							<option value="1">鍘熻緟鏂欏嚭搴�</option>
diff --git a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
index d694a54..59b18cf 100644
--- a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
+++ b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
@@ -103,6 +103,16 @@
         /// 鏇存柊浜�
         /// </summary>
         public string UpdateUserName { get; set; }
+
+        /// <summary>
+        /// 澶嶆牳浜�
+        /// </summary>
+        public string CheckUserName { get; set; }
+
+        /// <summary>
+        /// 澶嶆牳鏃堕棿
+        /// </summary>
+        public DateTime? CheckTime { get; set; }
     }
 
     public class ExStockInfoDto
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index e863a79..4e36e9f 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -278,7 +278,8 @@
                     .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
                     .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
                     .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
-                    .Select((a, b, c, d) => new ExportNoticeDto()
+                    .LeftJoin<SysUserInfor>((a, b, c, d,e) => a.CheckUser == e.Id)
+                    .Select((a, b, c, d,e) => new ExportNoticeDto()
                     {
                         Id = a.Id,
                         SONo = a.SONo,
@@ -300,7 +301,10 @@
                         CreateUserName = c.RealName,
                         UpdateUserName = c.RealName,
                         CreateTime = a.CreateTime,
-                        UpdateTime = a.UpdateTime
+                        UpdateTime = a.UpdateTime,
+
+                        CheckUserName=e.RealName,
+                        CheckTime=a.CheckTime
                     })
                     .OrderByDescending(a => a.CreateTime)
                     .ToOffsetPage(page, limit, ref total);
@@ -1043,6 +1047,10 @@
                 {
                     throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚鎴栬鍗曞叧闂�/宸蹭笂浼�");
                 }
+                if (userId == notice.UpdateUser)
+                {
+                    throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
+                }
                 //鍑哄簱鍗曟槑缁�
                 var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).Select(m => m.BoxNo3).ToList();
                 Db.BeginTran();//寮�鍚簨鍔�
@@ -1057,8 +1065,13 @@
                     //} 
 
                     var dom = HttpHelper.EncodeParsToFuMa(comDetail, "ceshi", "ExInfoXml");
+
+                    notice.Status = "6";//鐘舵�侊細宸蹭笂浼�
+                    notice.CheckTime = DateTime.Now;//澶嶆牳鏃堕棿
+                    notice.CheckUser = userId;//澶嶆牳浜�
+                    Db.Updateable(notice).ExecuteCommand();
                     ////娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    //var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "鍏冲崟", $"鍏抽棴浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
+                     var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
 
                     Db.CommitTran();
                     return dom;
@@ -2711,5 +2724,58 @@
 
         #endregion
 
+        /// <summary>
+        /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠�
+        /// </summary>
+        /// <param name="soNo"></param>
+        /// <returns></returns>
+        public string IsNeedUnpack(string soNo)
+        {
+            string result = "0";//鏄惁闇�瑕佹媶绠憋紝0锛氬惁  1锛氭槸
+            if (string.IsNullOrEmpty(soNo))
+            {
+                throw new Exception("鏈壘鍒板搴斿嚭搴撳崟锛�");
+            }
+            try
+            {
+                var notice = Db.Queryable<BllExportNotice>().First(w => w.IsDel == "0" && w.SONo == soNo);
+                if (notice == null)
+                {
+                    throw new Exception("鏈壘鍒板搴斿嚭搴撳崟锛�");
+                }
+                //鐗╂枡缂栫爜琛�
+                var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0");
+                //鍖呰琛�
+                var packagList= Db.Queryable<SysPackag>().Where(w => w.IsDel == "0");
+                //鍑哄簱鍒嗛厤淇℃伅
+                var allotList = Db.Queryable<BllExportAllot>().Where(w => w.IsDel == "0" && w.SONo == soNo).ToList();
+                foreach (var item in allotList)
+                {
+                    var skuInfo = skuList.First(w => w.SkuNo == item.SkuNo);
+                    if (skuInfo == null)
+                    {
+                        throw new Exception("鐗╂枡淇℃伅涓嶅瓨鍦紒");
+                    }
+                    var packagInfo = packagList.First(w => w.PackagNo == skuInfo.PackagNo);
+                    if (packagInfo == null)
+                    {
+                        throw new Exception("鍖呰淇℃伅涓嶅瓨鍦紒");
+                    }
+                    if (packagInfo.L2Name == "绠�")
+                    {
+                        if (item.Qty % (decimal)packagInfo.L2Num != 0)//鑳芥暣闄よ鏄庝笉鐢ㄦ媶绠憋紝涓嶈兘鏁撮櫎璇存槑闇�瑕佹媶绠�
+                        {
+                            result = "1";//闇�瑕佹媶绠�
+                            break;
+                        }
+                    }
+                }
+                return result;
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+        }
     }
 }
diff --git a/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs b/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs
index 28c8c7f..0fe0ca2 100644
--- a/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs
+++ b/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs
@@ -130,6 +130,5 @@
         /// 澶嶆牳鏃堕棿
         /// </summary>
         public DateTime? CheckTime { get; set; }
-
     }
 }
diff --git a/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs b/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs
index 6b48766..848b4da 100644
--- a/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs
+++ b/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs
@@ -153,8 +153,6 @@
         /// </summary>           
         public string OutMode { get; set; }
 
-        
-
 
         [Navigate(NavigateType.OneToOne, nameof(LogisticsId))]
         public SysLogisticsInfo LogisticsInfoInfo { get; set; }
diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
index 548d553..d72b933 100644
--- a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
@@ -202,5 +202,11 @@
         /// <param name="userId"></param>
         void AddHandOutAllot(AddHandOutVm model, int userId);
 
+        /// <summary>
+        /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠�
+        /// </summary>
+        /// <param name="soNo"></param>
+        /// <returns></returns>
+        string IsNeedUnpack(string soNo);
     }
 }
diff --git a/Wms/Wms/Controllers/BllSoController.cs b/Wms/Wms/Controllers/BllSoController.cs
index 56f7128..cfe804a 100644
--- a/Wms/Wms/Controllers/BllSoController.cs
+++ b/Wms/Wms/Controllers/BllSoController.cs
@@ -213,18 +213,18 @@
         {
             try
             {
-                ////鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
-                //var claimsIdentity = this.User.Identity as ClaimsIdentity;
-                //if (claimsIdentity == null)
-                //{
-                //    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                //}
-                //var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
-                //if (string.IsNullOrWhiteSpace(userId))
-                //{
-                //    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
-                //}
-                var bolls = _exNoticeSvc.AddExXmlStr(model.Id, 1);//int.Parse(userId)
+                //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D
+                var claimsIdentity = this.User.Identity as ClaimsIdentity;
+                if (claimsIdentity == null)
+                {
+                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+                }
+                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+                if (string.IsNullOrWhiteSpace(userId))
+                {
+                    return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
+                }
+                var bolls = _exNoticeSvc.AddExXmlStr(model.Id, int.Parse(userId));
                  
                 return Ok(new { code = 0, count = 0, msg = "鐢熸垚鍑哄簱鍗昘ml", data= bolls.InnerXml.ToString() });
                  
@@ -767,5 +767,26 @@
         }
 
         #endregion
+
+        /// <summary>
+        /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠�
+        /// </summary>
+        /// <param name="soNo"></param>
+        /// <returns></returns>
+        [HttpGet]
+        public IActionResult IsNeedUnpack(string soNo)
+        {
+            try
+            {
+                string result = _exNoticeSvc.IsNeedUnpack(soNo);
+
+                return Ok(new { code = 0, data = result, msg = "鎴愬姛" });
+
+            }
+            catch (Exception e)
+            {
+                return Ok(new { code = 1, msg = e.Message });
+            }
+        }
     }
 }

--
Gitblit v1.8.0