klzhangweiya 7 месяцев назад
Родитель
Сommit
bd0e2dea1f

+ 2 - 0
src_0nline/ShwasherSys/ShwasherSys.Core/Authorization/Permissions/PermissionNames.cs

@@ -185,6 +185,8 @@ namespace ShwasherSys.Authorization.Permissions
         public const string PagesPackInfoPackInfoMgPackageInfoMgRecovery = "Pages.PackInfo.PackInfoMg.PackageInfoMg.Recovery";
         public const string PagesPackInfoPackInfoMgPackageInfoMgConfirm = "Pages.PackInfo.PackInfoMg.PackageInfoMg.Confirm";
         public const string PagesPackInfoPackInfoMgPackageInfoMgClose = "Pages.PackInfo.PackInfoMg.PackageInfoMg.Close";
+        public const string PagesPackInfoToBePackageInfoMg = "Pages.PackInfo.ToBePackageInfoMg";
+        public const string PagesPackInfoToBePackageInfoMgQuery = "Pages.PackInfo.ToBePackageInfoMg.Query";
         public const string PagesFinshedStoreInfo = "Pages.FinshedStoreInfo";
         public const string PagesFinshedStoreInfoFinshedEnterStoreApplyMg = "Pages.FinshedStoreInfo.FinshedEnterStoreApplyMg";
         public const string PagesFinshedStoreInfoFinshedEnterStoreApplyMgQuery = "Pages.FinshedStoreInfo.FinshedEnterStoreApplyMg.Query";

+ 29 - 0
src_0nline/ShwasherSys/ShwasherSys.EntityFramework/Migrations/202508250224552_checkMigration.Designer.cs

@@ -0,0 +1,29 @@
+// <auto-generated />
+namespace ShwasherSys.Migrations
+{
+    using System.CodeDom.Compiler;
+    using System.Data.Entity.Migrations;
+    using System.Data.Entity.Migrations.Infrastructure;
+    using System.Resources;
+    
+    [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
+    public sealed partial class checkMigration : IMigrationMetadata
+    {
+        private readonly ResourceManager Resources = new ResourceManager(typeof(checkMigration));
+        
+        string IMigrationMetadata.Id
+        {
+            get { return "202508250224552_checkMigration"; }
+        }
+        
+        string IMigrationMetadata.Source
+        {
+            get { return null; }
+        }
+        
+        string IMigrationMetadata.Target
+        {
+            get { return Resources.GetString("Target"); }
+        }
+    }
+}

+ 30 - 0
src_0nline/ShwasherSys/ShwasherSys.EntityFramework/Migrations/202508250224552_checkMigration.cs

@@ -0,0 +1,30 @@
+namespace ShwasherSys.Migrations
+{
+    using System;
+    using System.Data.Entity.Migrations;
+    
+    public partial class checkMigration : DbMigration
+    {
+        public override void Up()
+        {
+            //DropForeignKey("dbo.N_ViewOutSourcingMiss", "CreatorUserId", "dbo.Sys_Users");
+            //DropForeignKey("dbo.N_ViewOutSourcingMiss", "LastModifierUserId", "dbo.Sys_Users");
+            //DropIndex("dbo.N_ViewOutSourcingMiss", new[] { "LastModifierUserId" });
+            //DropIndex("dbo.N_ViewOutSourcingMiss", new[] { "CreatorUserId" });
+            //DropColumn("dbo.N_ViewOutSourcingMiss", "LastModificationTime");
+            //DropColumn("dbo.N_ViewOutSourcingMiss", "LastModifierUserId");
+            //DropColumn("dbo.N_ViewOutSourcingMiss", "CreatorUserId");
+        }
+        
+        public override void Down()
+        {
+            //AddColumn("dbo.N_ViewOutSourcingMiss", "CreatorUserId", c => c.Long());
+            //AddColumn("dbo.N_ViewOutSourcingMiss", "LastModifierUserId", c => c.Long());
+            //AddColumn("dbo.N_ViewOutSourcingMiss", "LastModificationTime", c => c.DateTime());
+            //CreateIndex("dbo.N_ViewOutSourcingMiss", "CreatorUserId");
+            //CreateIndex("dbo.N_ViewOutSourcingMiss", "LastModifierUserId");
+            //AddForeignKey("dbo.N_ViewOutSourcingMiss", "LastModifierUserId", "dbo.Sys_Users", "Id");
+            //AddForeignKey("dbo.N_ViewOutSourcingMiss", "CreatorUserId", "dbo.Sys_Users", "Id");
+        }
+    }
+}

Разница между файлами не показана из-за своего большого размера
+ 120 - 0
src_0nline/ShwasherSys/ShwasherSys.EntityFramework/Migrations/202508250224552_checkMigration.resx


+ 3 - 0
src_0nline/ShwasherSys/ShwasherSys.EntityFramework/Migrations/SeedData/DefaultFunctionsCreator.cs

@@ -300,6 +300,9 @@ namespace ShwasherSys.Migrations.SeedData
             CreateFunctions("Confirm", "确认入库申请", "PackageInfoMg", 2, "", "", "icon-edit", 2, 3, "/api/services/app/PackInfoApply/ConfirmProductApply", "btn btn-default", "N_btnConfirm");
             CreateFunctions("Close", "关闭入库申请", "PackageInfoMg", 2, "", "", "icon-delete", 2, 3, "/api/services/app/PackInfoApply/CloseProductApply", "btn btn-default", "N_btnClose");
 
+
+            CreateFunctions("ToBePackageInfoMg", "待包装信息查询", "PackInfo", 1, "ToBePackageInfo", "PackInfo", "icon-menu", 4, 2);
+            CreateFunctions("Query", "查看页面", "ToBePackageInfoMg", 2, "", "", "", 0, 3, "", "btn btn-default", "None");
         }
 
         public void Store14()

+ 7 - 0
src_0nline/ShwasherSys/ShwasherSys.EntityFramework/ShwasherSys.EntityFramework.csproj

@@ -338,6 +338,10 @@
     <Compile Include="Migrations\202508060821209_addViewoutSourcingMiss.Designer.cs">
       <DependentUpon>202508060821209_addViewoutSourcingMiss.cs</DependentUpon>
     </Compile>
+    <Compile Include="Migrations\202508250224552_checkMigration.cs" />
+    <Compile Include="Migrations\202508250224552_checkMigration.Designer.cs">
+      <DependentUpon>202508250224552_checkMigration.cs</DependentUpon>
+    </Compile>
     <Compile Include="Migrations\Configuration.cs" />
     <Compile Include="Migrations\SeedData\DefaultAppGuidsCreator.cs" />
     <Compile Include="Migrations\SeedData\DefaultFunctionsCreator.cs" />
@@ -413,6 +417,9 @@
     <EmbeddedResource Include="Migrations\202508060821209_addViewoutSourcingMiss.resx">
       <DependentUpon>202508060821209_addViewoutSourcingMiss.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="Migrations\202508250224552_checkMigration.resx">
+      <DependentUpon>202508250224552_checkMigration.cs</DependentUpon>
+    </EmbeddedResource>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />

+ 13 - 0
src_0nline/ShwasherSys/ShwasherSys.Web/Controllers/PackInfoController.cs

@@ -49,5 +49,18 @@ namespace ShwasherSys.Controllers
             ViewBag.ApplyStatus = StatesAppService.GetSelectLists("PackInfoApply", "ApplyStatus");
             return View();
         }
+
+        /// <summary>
+        /// 存在没有包装完成的数量的记录,单独弄个页面出来查看
+        /// </summary>
+        /// <returns></returns>
+        [AbpMvcAuthorize]
+        [AbpMvcAuthorize(PermissionNames.PagesPackInfoToBePackageInfoMg), AuditLog("待包装记录")]
+        public ActionResult ToBePackageInfo()
+        {
+            ViewBag.ProductApplyStatus = StatesAppService.GetSelectLists("FinshedEnterStore", "ApplyStatus");
+            ViewBag.ApplyStatus = StatesAppService.GetSelectLists("PackInfoApply", "ApplyStatus");
+            return View();
+        }
     }
 }

+ 1 - 0
src_0nline/ShwasherSys/ShwasherSys.Web/ShwasherSys.Web.csproj

@@ -2310,6 +2310,7 @@
     <Content Include="Resources\Order\分配单模板.xlsx" />
     <Content Include="Views\ProductionInfo\_ProductionOrderEx.cshtml" />
     <Content Include="Views\ProductionInfo\OutSourcingMissStoreMg.cshtml" />
+    <Content Include="Views\PackInfo\ToBePackageInfo.cshtml" />
     <!--<Content Include="Scripts\bootstrap.min.js.map" />
     <Content Include="Scripts\bootstrap.js.map" />
     <Content Include="Scripts\bootstrap.bundle.min.js.map" />

+ 253 - 0
src_0nline/ShwasherSys/ShwasherSys.Web/Views/PackInfo/ToBePackageInfo.cshtml

@@ -0,0 +1,253 @@
+@using ShwasherSys.Authorization.Permissions
+@using ShwasherSys.Models.Layout
+@using ShwasherSys.Models.Modal
+@{
+    /**/
+
+    ViewBag.ActiveMenu = PermissionNames.PagesPackInfoToBePackageInfoMg; //The menu item will be active for this page.
+    ViewBag.Title = "产品待包装信息";
+    string employee = ViewBag.Employee;
+    List<SelectListItem> productApplyStatus = ViewBag.ProductApplyStatus;
+    List<SelectListItem> applyStatus = ViewBag.ApplyStatus;
+    List<SelectListItem> closeStatus = new List<SelectListItem>()
+{
+new SelectListItem(){Text = @"未关闭",Value = "false",Selected = true},
+new SelectListItem(){Text = @"已关闭",Value = "true"}
+};
+    var searchForm = new SearchFormViewModal(new List<SearchItem>()
+{
+new SearchItem("productionOrderNo","排产单号"),
+
+    new SearchItem("productName","产品名称"),
+    new SearchItem("model","规格"),
+   new SearchItem("material","材质"),
+    new SearchItem("applyDate", "申请日期",FiledType.Dnull,ExpType.GreaterOrEqual),
+    new SearchItem("applyDate", "到",FiledType.Dnull,ExpType.LessOrEqual),
+    new SearchItem("semiProductNo","半成品编码").SetSearchIcon("query_semiProduct_modal"),
+new SearchItem("applyStatus","申请状态" )
+.SetSearchItem(applyStatus),
+new SearchItem("isClose","关闭状态" ,FiledType.B,ExpType.Equal)
+.SetSearchItem(closeStatus),
+
+
+
+}, false);
+}
+@section css{
+    <link href="~/Content/Plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" />
+}
+<section style="display: none">
+    @Html.DropDownList("hide-ApplyStatus", applyStatus)
+
+    @Html.DropDownList("hide-ProductApplyStatus", productApplyStatus)
+</section>
+<style>
+    .tool-radio {
+        display: inline-block;
+        margin-left: 10px;
+    }
+
+    [type="radio"]:not(:checked) + label, [type="radio"]:checked + label {
+        padding-left: 25px;
+        font-size: 1.5rem;
+        color: #dad9db;
+    }
+
+    .package-unit {
+        border: 1px solid #583d9c;
+        border-radius: 3px;
+        padding: 10px 0 0;
+        display: table;
+        width: 96%;
+        margin-left: 2%;
+    }
+
+        .package-unit:not(:last-of-type) {
+            margin-bottom: 5px;
+        }
+
+        .package-unit .form-group-sm > div {
+            margin-bottom: 10px;
+        }
+
+    #showZoreCheckBox + label::before, #showZoreCheckBox:not(.filled-in) + label::after {
+        top: -10px;
+        left: -5px;
+        width: 18px;
+        height: 18px;
+    }
+
+    #showZoreCheckBox:checked + label::before {
+        top: -10px;
+        left: -8px;
+        width: 11px;
+        height: 15px;
+        border-top: 2px solid transparent;
+        border-left: 2px solid transparent;
+        border-right: 2px solid #26a69a;
+        border-bottom: 2px solid #26a69a;
+        transform: rotate(40deg);
+        -webkit-backface-visibility: hidden;
+        backface-visibility: hidden;
+        -webkit-transform-origin: 100% 100%;
+        transform-origin: 100% 100%;
+    }
+</style>
+<div class="table-box iwb-bootstrap-table">
+    @Html.Action("ToolMenu", "Layout", new { pageName = ViewBag.ActiveMenu, searchForm })
+    <table id="table"
+           data-url="/api/services/app/PackInfoApply/GetAll" data-id-field="id" data-unique-id="id"
+           data-striped="true" data-click-to-select="true" data-single-select="true"
+           data-method="post" data-side-pagination="server" data-content-type="application/x-www-form-urlencoded; charset=UTF-8"
+           data-cache="false" data-pagination="true" data-page-size="30" data-page-number="1" data-page-list="[30,50,100,200]"
+           data-pagination-h-align="left" data-pagination-detail-h-align="right"
+           data-query-params="QueryParams" data-response-handler="ResponseHandler">
+        <thead>
+            <tr class="row" id="header">
+                <th data-field="state" data-checkbox="true"></th>
+                <th data-align="center" data-field="processingNum" data-formatter="ProcessingNumFormatter">待处理明细</th>
+                <th data-align="center" data-field="productionOrderNo">流转单编号</th>
+                <th data-align="center" data-field="" data-formatter="PackageProductNoFormatter">包装前产品编码</th>
+                <th data-align="center" data-field="applyQuantity">申请包装数量</th>
+                <th data-align="center" data-field="remainApplyQuantity" data-formatter="RemainApplyQuantityFormatter">待包装数量</th>
+                <th data-align="center" data-field="surfaceColor">表色</th>
+                <th data-align="center" data-field="productName">产品名称</th>
+                <th data-align="center" data-field="model">规格</th>
+                <th data-align="center" data-field="material">材质</th>
+                <th data-align="center" data-field="rigidity">硬度</th>
+                <th data-align="center" data-field="partNo">零件号</th>
+                <th data-align="center" data-field="remark">备注</th>
+                <th data-align="center" data-field="applyDate" data-formatter="DateFormatter">申请时间</th>
+                <th data-align="center" data-field="applyStatus" data-formatter="ApplyStatusFormatter">申请状态</th>
+            </tr>
+        </thead>
+    </table>
+</div>
+ 
+@section modal{
+    <!--Main Modal-->
+     @Html.Partial("Modals/Query/_SemiProduct", "KeyWords-6")
+    @Html.Partial("Modals/Query/_Product", "productNo,productName")
+
+   
+}
+
+@section scripts
+{
+    <script src="~/Content/Plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
+    <script src="~/Content/Plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js"></script>
+
+    <script type="text/javascript">
+    
+
+        $(function () {
+            $("#KeyWords-9").val("false").select2();
+            $("#Tool1").append(
+                '<div  class="tool-radio"><input name="packType" type="radio" id="sProduct" checked value="1"/><label for="sProduct">半成品包装</label></div>' +
+                '<div  class="tool-radio"><input name="packType" type="radio" id="fProduct" value="2"/><label for="fProduct">成品包装</label></div>');
+			 
+            $(".tool-radio input[type='radio']").on('click',
+                function (e) {
+                   
+                    //document.getElementById("SearchForm").reset();
+                    GetSearchList();
+                    RefreshTable(); 
+                    
+                    //$("#table").bootstrapTable('resetView', { height: 800 });
+                });
+            GetSearchList(); 
+			LoadTable();
+        });
+        
+		function GetSearchList() {
+			var count = $("#SearchForm").find(".KeyWords").length;
+			window._searchList = [];
+			var packType = $('input[name="packType"]:checked').val();
+			if (packType) {
+				window._searchList.push({ KeyWords: packType, KeyField: "PackType", FieldType: "1", ExpType: "0" });
+				window._searchList.push({ KeyWords: 0, KeyField: "RemainApplyQuantity", FieldType: "7", ExpType: "2" });
+			}
+			for (var i = 1; i <= count; i++) {
+				var keyWords = $("#KeyWords-" + i).val();
+				if (keyWords) {
+					var keyField = $("#KeyField-" + i).val();
+					var fieldType = $("#FieldType-" + i).val();
+					var expType = $("#ExpType-" + i).val();
+					window._searchList.push({
+						KeyWords: keyWords,
+						KeyField: keyField,
+						FieldType: fieldType,
+						ExpType: expType
+					});
+				}
+			}
+		}
+    </script>
+
+
+
+    <script>
+        function PackageProductNoFormatter(v, r) {
+            var packType = $('input[name="packType"]:checked').val();
+
+            if (packType === "1") {
+                return '<span class="label label-info">' + r.semiProductNo + '</span>';
+            } else {
+                return '<span class="label label-danger">' + r.productNo + '</span>';
+            }
+
+        }
+
+        function ProcessingNumFormatter(v, r) {
+
+            if (v === 0) {
+                //return '<span class="label label-info">' + v+ '</span>';
+                return '';
+            } else {
+                return '<span class="label label-danger">待处理:' + v + '</span>';
+            }
+
+        }
+
+        function ApplyStatusFormatter(v, r) {
+            if (r.isClose) {
+                return '<span class="label label-primary">已结束</span>';
+            }
+            var name = $("#hide-ApplyStatus option[value='" + v + "']").text();
+            if (v === "1") {
+                return '<span class="label label-info">' + name + '</span>';
+            } else if (v === "2") {
+                return '<span class="label label-success">' + name + '</span>';
+            } else if (v === "3") {
+                return '<span class="label label-danger">' + name + '</span>';
+            }
+            return '<span class="label label-info">' + name + '</span>';
+        }
+
+        function ProductApplyStatusFormatter(v, r) {
+            if (r.isClose) {
+                return '<span class="label label-primary">已结束</span>';
+            }
+            var name = $("#hide-ProductApplyStatus option[value='" + v + "']").text();
+            if (v === 1) {
+                return '<span class="label label-info">' + name + '</span>';
+            } else if (v === 2) {
+                return '<span class="label label-success">' + name + '</span>';
+            } else if (v === 3) {
+                return '<span class="label label-warning">' + name + '</span>';
+            } else if (v === 4) {
+                return '<span class="label label-danger">' + name + '</span>';
+            } else if (v === 5) {
+                return '<span class="label label-info">' + name + '</span>';
+            }
+            return '<span class="label label-info">' + name + '</span>';
+        }
+
+		function RemainApplyQuantityFormatter(v, r) {
+            if (v > 0) {
+				return '<span class="label label-danger" style="font-size:13px;">' + v + '</span>'
+            }
+        }
+     
+    </script>
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов