yl
2023-06-30 6fe3d6fc4e93f4cf31dc02d4f0cbc48d56c249b7
多车间模式接口过滤
已添加1个文件
已修改42个文件
1418 ■■■■■ 文件已修改
.vs/VueWebApi/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppAnalyticsController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppProductionManagementController.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppQualityManagementController.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/BasicSettingController.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/DeviceManagerController.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/LoginController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ProductModelController.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ProductionManagementController.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/QualityManagementController.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/AppAnalyticsBLL.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/BasicSettingBLL.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/DeviceManagerBLL.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/LoginBLL.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ProductModelBLL.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ProductionManagementBLL.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/QualityManagementBLL.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/AppAnalyticsDAL.cs 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/BasicSettingDAL.cs 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/DeviceManagerDAL.cs 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/LoginDAL.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductModelDAL.cs 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductionManagementDAL.cs 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/QualityManagementDAL.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ReportManagerDAL.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Excel/用户清单.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Excel/节拍工价.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Excel/角色清单.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Excel/设备清单.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/InExcel/2/用户清单.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ImportExcelData.cs 461 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ScanStartReport.cs 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.xml 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Excel/用户清单.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Excel/节拍工价.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Excel/角色清单.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Excel/设备清单.xls 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VueWebApi/v16/.suo
Binary files differ
VueWebApi/Controllers/AppAnalyticsController.cs
@@ -22,13 +22,15 @@
        /// <summary>
        /// App生产看板
        /// </summary>
        /// <param name="stu_torgcode">组织编码</param>
        /// <param name="stu_torgtypecode">组织类型</param>
        /// <param name="usercode">登录人员</param>
        /// <param name="Ratetime">时间</param>
        /// <param name="defecttype">缺陷统计类型</param>
        /// <returns></returns>
        [Route(template: "ProductionKanban")]
        [HttpGet]
        public HttpResponseMessage ProductionKanban(string usercode, string Ratetime,string defecttype)
        public HttpResponseMessage ProductionKanban(string stu_torgcode,string stu_torgtypecode,string usercode, string Ratetime,string defecttype)
        {
            string startopendate = "";  //开始时间
            string endclosedate = "";    //结束时间
@@ -37,7 +39,7 @@
                startopendate = Ratetime.Split('~')[0].ToString();
                endclosedate = Ratetime.Split('~')[1].ToString();
            }
            mes = AppAnalyticsBLL.ProductionKanban(usercode, startopendate, endclosedate, defecttype);
            mes = AppAnalyticsBLL.ProductionKanban(stu_torgcode, stu_torgtypecode,usercode, startopendate, endclosedate, defecttype);
            return TJson.toJson(mes);
        }
        #endregion
@@ -46,13 +48,15 @@
        /// <summary>
        /// App生产进度看板单据信息
        /// </summary>
        /// <param name="stu_torgcode">组织编码</param>
        /// <param name="stu_torgtypecode">组织类型</param>
        /// <param name="ordertype">单据类型(SO:销售订单、MO:生产订单、PO:生产工单)</param>
        /// <param name="partcode">产品信息(可多个)</param>
        /// <param name="Ratetime">单据日期范围</param>
        /// <returns></returns>
        [Route(template: "ProductionScheduleKanban")]
        [HttpGet]
        public HttpResponseMessage ProductionScheduleKanban(string ordertype, string partcode=null, string Ratetime=null)
        public HttpResponseMessage ProductionScheduleKanban(string stu_torgcode, string stu_torgtypecode, string ordertype, string partcode=null, string Ratetime=null)
        {
            string startopendate = "";  //开始时间
            string endclosedate = "";    //结束时间
@@ -61,7 +65,7 @@
                startopendate = Ratetime.Split('~')[0].ToString();
                endclosedate = Ratetime.Split('~')[1].ToString();
            }
            mes = AppAnalyticsBLL.ProductionScheduleKanban(ordertype,partcode, startopendate, endclosedate);
            mes = AppAnalyticsBLL.ProductionScheduleKanban(stu_torgcode, stu_torgtypecode,ordertype, partcode, startopendate, endclosedate);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/AppProductionManagementController.cs
@@ -25,15 +25,16 @@
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
        /// </summary>
        /// <param name="stu_torgcode">所属组织编码</param>
        /// <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
        /// <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepStart")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepStart(string OperType, string orderstepqrcode, string SelectType = null)
        public HttpResponseMessage MesOrderStepStart(string stu_torgcode, string OperType, string orderstepqrcode, string SelectType = null)
        {
            mes = ProductionManagementBLL.MesOrderStepStart(OperType, SelectType, orderstepqrcode);
            mes = ProductionManagementBLL.MesOrderStepStart(OperType, stu_torgcode, SelectType, orderstepqrcode);
            return TJson.toJson(mes);
        }
        #endregion
@@ -57,13 +58,15 @@
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæŠ¥å·¥æ—¶èŽ·å–ç”Ÿäº§ç­ç»„ä¸‹æ‹‰æ¡†
        /// </summary>
        /// <param name="stu_torgcode">组织编码</param>
        /// <param name="stu_torgtypecode">组织类型</param>
        /// <param name="wkshopcode">车间编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepReportSelectUserGroup")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepReportSelectUserGroup(string wkshopcode)
        public HttpResponseMessage MesOrderStepReportSelectUserGroup(string stu_torgcode,string stu_torgtypecode, string wkshopcode)
        {
            mes = ProductionManagementBLL.MesOrderStepReportSelectUserGroup(wkshopcode);
            mes = ProductionManagementBLL.MesOrderStepReportSelectUserGroup(stu_torgcode, stu_torgtypecode,wkshopcode);
            return TJson.toJson(mes);
        }
        #endregion
@@ -72,13 +75,14 @@
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
        /// </summary>
        /// <param name="stu_torgcode">组织编码</param>
        /// <param name="usergroupcode">班组编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderGroupSelectUser")]
        [HttpGet]
        public HttpResponseMessage MesOrderGroupSelectUser(string usergroupcode)
        public HttpResponseMessage MesOrderGroupSelectUser(string stu_torgcode, string usergroupcode)
        {
            mes = ProductionManagementBLL.MesOrderGroupSelectUser(usergroupcode);
            mes = ProductionManagementBLL.MesOrderGroupSelectUser(stu_torgcode,usergroupcode);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/AppQualityManagementController.cs
@@ -87,14 +87,15 @@
        /// <summary>
        /// å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
        /// </summary>
        /// <param name="stu_torgcode">组织编码</param>
        /// <param name="orderstepqrcode">扫描工序二维码信息</param>
        /// <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
        /// <returns></returns>
        [Route(template: "StepCheckSearch")]
        [HttpGet]
        public HttpResponseMessage StepCheckSearch(string orderstepqrcode,string checktype)
        public HttpResponseMessage StepCheckSearch(string stu_torgcode,string orderstepqrcode,string checktype)
        {
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(stu_torgcode,orderstepqrcode, checktype);
            return TJson.toJson(mes);
        }
        #endregion
@@ -123,6 +124,7 @@
        [HttpPost]
        public HttpResponseMessage SaveStepCheckItem()
        {
            string stu_torgcode = HttpContext.Current.Request["stu_torgcode"].ToString();//组织编码
            string wocode = HttpContext.Current.Request["wocode"].ToString();//工单号
            string partcode = HttpContext.Current.Request["partcode"].ToString();//物料编码
            string stepcode = HttpContext.Current.Request["stepcode"].ToString();//工序编码
@@ -136,7 +138,7 @@
            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//不合格数量
            string checkitemcont = HttpContext.Current.Request["checkitemcont"].ToString();//检验项目数据
            string username = HttpContext.Current.Request["admin"].ToString();//操作人员
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode,partcode,stepcode,checkstandcode,check_type,sampmethod,qualitystatus,labqty,sampleqty,goodqty,ngqty,checkitemcont,username);
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(stu_torgcode,wocode, partcode,stepcode,checkstandcode,check_type,sampmethod,qualitystatus,labqty,sampleqty,goodqty,ngqty,checkitemcont,username);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/BasicSettingController.cs
@@ -94,12 +94,13 @@
        /// ç»„织架构删除
        /// </summary>
        /// <param name="orgid">组织id</param>
        /// <param name="orgcode">组织编码</param>
        /// <returns></returns>
        [Route(template: "DeleteOrganization")]
        [HttpPost]
        public HttpResponseMessage DeleteOrganization(int orgid)
        public HttpResponseMessage DeleteOrganization(int orgid,string orgcode)
        {
            mes = BasicSettingBLL.DeleteOrganization(orgid);
            mes = BasicSettingBLL.DeleteOrganization(orgid, orgcode);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/DeviceManagerController.cs
@@ -417,9 +417,11 @@
        [HttpGet]
        public HttpResponseMessage DeviceCheckStandArdSearch(int page, int rows, string prop, string order,string checkstandcode = null, string checkstandname = null, string checkcontr = null)
        {
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //所属组织类型
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = DeviceManagerBLL.DeviceCheckStandArdSearch(checkstandcode, checkstandname, checkcontr, startNum, endNum, prop, order);
            mes = DeviceManagerBLL.DeviceCheckStandArdSearch(stu_torgcode, stu_torgtypecode,checkstandcode, checkstandname, checkcontr, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
@@ -513,8 +515,10 @@
        [HttpPost]
        public HttpResponseMessage SaveDeviceCheckStanedAssociationEqp(string checkstand_code, List<ObjectData> json)
        {
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //所属组织类型
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = DeviceManagerBLL.SaveDeviceCheckStanedAssociationEqp(checkstand_code, username, json);
            mes = DeviceManagerBLL.SaveDeviceCheckStanedAssociationEqp(stu_torgcode, stu_torgtypecode,checkstand_code, username, json);
            return TJson.toJson(mes);
        }
        #endregion
@@ -537,9 +541,11 @@
        [HttpGet]
        public HttpResponseMessage DeviceRepairStandArdSearch(int page, int rows, string prop, string order,string repairstandcode = null, string repairstandname = null, string repairstanddescr = null)
        {
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //所属组织类型
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = DeviceManagerBLL.DeviceRepairStandArdSearch(repairstandcode, repairstandname, repairstanddescr, startNum, endNum, prop, order);
            mes = DeviceManagerBLL.DeviceRepairStandArdSearch(stu_torgcode, stu_torgtypecode,repairstandcode, repairstandname, repairstanddescr, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
@@ -633,8 +639,10 @@
        [HttpPost]
        public HttpResponseMessage SaveDeviceRepairStanedAssociationEqp(string repairstand_code, List<ObjectData> json)
        {
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //所属组织类型
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = DeviceManagerBLL.SaveDeviceRepairStanedAssociationEqp(repairstand_code, username, json);
            mes = DeviceManagerBLL.SaveDeviceRepairStanedAssociationEqp(stu_torgcode, stu_torgtypecode, repairstand_code, username, json);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/LoginController.cs
@@ -395,12 +395,13 @@
        /// <param name="usercode">用户编码</param>
        /// <param name="username">用户名</param>
        /// <param name="usertype">操作端PC/APP</param>
        /// <param name="stu_torgcode">所属组织编码</param>
        /// <returns></returns>
        [Route(template: "LoginAppOut")]
        [HttpPost]
        public HttpResponseMessage LoginAppOut(int userid, string usercode, string username, string usertype)
        public HttpResponseMessage LoginAppOut(int userid, string usercode, string username, string usertype,string stu_torgcode)
        {
            mes = LoginBLL.LoginAppOut(userid, usercode, username, usertype);
            mes = LoginBLL.LoginAppOut(userid, usercode, username, usertype, stu_torgcode);
            return mes.ResponseMess(mes);
        }
        #endregion
@@ -413,12 +414,14 @@
        /// <param name="usercode">用户编码</param>
        /// <param name="username">用户名称</param>
        /// <param name="usertype">操作端PC/APP</param>
        /// <param name="stu_torgcode">所属编码组织</param>
        /// <param name="stu_torgtypecode">所属组织类型</param>
        /// <returns></returns>
        [Route(template: "LoginAppAnDonMessage")]
        [HttpPost]
        public HttpResponseMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype)
        public HttpResponseMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype,string stu_torgcode,string stu_torgtypecode)
        {
            mes = LoginBLL.LoginAppAnDonMessage(rid, usercode, username, usertype);
            mes = LoginBLL.LoginAppAnDonMessage(rid, usercode, username, usertype, stu_torgcode, stu_torgtypecode);
            return TJson.toJson(mes);
            //return mes.ResponseMess(mes);
        }
VueWebApi/Controllers/ProductModelController.cs
@@ -216,9 +216,11 @@
        [HttpGet]
        public HttpResponseMessage InventoryFileSelect(string partcode = null, string partname = null, string partspec = null, string stocktypecode = null, string materialtypecode = null, string storehousecode = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //所属组织类型
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ProductModelBLL.InventoryFileSelect(partcode, partname, partspec, stocktypecode, materialtypecode, storehousecode, startNum, endNum, prop, order);
            mes = ProductModelBLL.InventoryFileSelect(stu_torgcode, stu_torgtypecode,partcode, partname, partspec, stocktypecode, materialtypecode, storehousecode, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/ProductionManagementController.cs
@@ -17,7 +17,7 @@
{
    [RoutePrefix(prefix: "api/ProductionManagement")]
    [ControllerGroup("生产管理", "在线接口")]
    [ChannelActionFilter]
    //[ChannelActionFilter]
    public class ProductionManagementController : ApiController
    {
        //定义全局信息返回变量
@@ -470,12 +470,13 @@
        /// <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
        /// <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <param name="stu_torgcode">所属组织编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepStart")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepStart(string OperType, string orderstepqrcode, string SelectType = null)
        public HttpResponseMessage MesOrderStepStart(string OperType,string stu_torgcode, string orderstepqrcode, string SelectType = null)
        {
            mes = ProductionManagementBLL.MesOrderStepStart(OperType, SelectType, orderstepqrcode);
            mes = ProductionManagementBLL.MesOrderStepStart(OperType, stu_torgcode, SelectType, orderstepqrcode);
            return TJson.toJson(mes);
        }
        #endregion
@@ -522,7 +523,8 @@
        [HttpGet]
        public HttpResponseMessage MesOrderGroupSelectUser(string usergroupcode)
        {
            mes = ProductionManagementBLL.MesOrderGroupSelectUser(usergroupcode);
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            mes = ProductionManagementBLL.MesOrderGroupSelectUser(stu_torgcode,usergroupcode);
            return TJson.toJson(mes);
        }
        #endregion
@@ -699,14 +701,15 @@
        /// <summary>
        /// å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
        /// </summary>
        /// <param name="stu_torgcode">所属组织编码</param>
        /// <param name="orderstepqrcode">扫描工序二维码信息</param>
        /// <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepCheckSearch")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
        public HttpResponseMessage MesOrderStepCheckSearch(string stu_torgcode, string orderstepqrcode, string checktype)
        {
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(stu_torgcode,orderstepqrcode, checktype);
            return TJson.toJson(mes);
        }
        #endregion
@@ -735,6 +738,7 @@
        [HttpPost]
        public HttpResponseMessage SaveMesOrderStepCheckItem([FromBody] JObject obj)
        {
            string stu_torgcode = obj["stu_torgcode"].ToString(); //所属组织编号
            string wocode = obj["wocode"].ToString(); //工单编号
            string partcode = obj["partcode"].ToString(); //产品编码
            string stepcode = obj["stepcode"].ToString(); //工序编码
@@ -748,7 +752,7 @@
            string ngqty = obj["ngqty"].ToString();//不合格数量
            string checkitemcont = obj["checkitemcont"].ToString(); //检验项目数据
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(stu_torgcode,wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/QualityManagementController.cs
@@ -252,9 +252,11 @@
        [HttpGet]
        public HttpResponseMessage StepCheckTableSearch(string wocode = null, string partcode = null, string partname = null, string partapec = null, string stepname = null,string standname=null, string checktype = null, string checkresult = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //所属组织类型
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = QualityManagementBLL.StepCheckTableSearch(wocode, partcode, partname,partapec,stepname,standname,checktype,checkresult, startNum, endNum, prop, order);
            mes = QualityManagementBLL.StepCheckTableSearch(stu_torgcode, stu_torgtypecode,wocode, partcode, partname,partapec,stepname,standname,checktype,checkresult, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
@@ -293,7 +295,9 @@
        [HttpGet]
        public HttpResponseMessage StepCheckTableOutExcel(string wocode = null, string partcode = null, string partname = null, string partapec = null, string stepname = null, string standname = null, string checktype = null, string checkresult = null,string prop = null, string order = null)
        {
            mes = QualityManagementBLL.StepCheckTableOutExcel(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, prop, order);
            var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //所属组织
            var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //所属组织类型
            mes = QualityManagementBLL.StepCheckTableOutExcel(stu_torgcode, stu_torgtypecode, wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/DLL/BLL/AppAnalyticsBLL.cs
@@ -10,16 +10,16 @@
    public class AppAnalyticsBLL
    {
        #region[App生产看板]
        public static ToMessage ProductionKanban(string usercode, string startopendate, string endclosedate,string defecttype)
        public static ToMessage ProductionKanban(string stu_torgcode,string stu_torgtypecode,string usercode, string startopendate, string endclosedate,string defecttype)
        {
            return AppAnalyticsDAL.ProductionKanban(usercode, startopendate, endclosedate, defecttype);
            return AppAnalyticsDAL.ProductionKanban(stu_torgcode, stu_torgtypecode,usercode, startopendate, endclosedate, defecttype);
        }
        #endregion
        #region[App生产进度看板单据信息]
        public static ToMessage ProductionScheduleKanban(string ordertype, string partcode, string startopendate, string endclosedate)
        public static ToMessage ProductionScheduleKanban(string stu_torgcode,string stu_torgtypecode, string ordertype, string partcode, string startopendate, string endclosedate)
        {
            return AppAnalyticsDAL.ProductionScheduleKanban(ordertype, partcode, startopendate, endclosedate);
            return AppAnalyticsDAL.ProductionScheduleKanban(stu_torgcode, stu_torgtypecode, ordertype, partcode, startopendate, endclosedate);
        }
        #endregion
    }
VueWebApi/DLL/BLL/BasicSettingBLL.cs
@@ -33,9 +33,9 @@
        #endregion
        #region [组织架构删除]
        public static ToMessage DeleteOrganization(int orgid)
        public static ToMessage DeleteOrganization(int orgid,string orgcode)
        {
            return BasicSettingDAL.DeleteOrganization(orgid);
            return BasicSettingDAL.DeleteOrganization(orgid, orgcode);
        }
        #endregion
VueWebApi/DLL/BLL/DeviceManagerBLL.cs
@@ -152,9 +152,9 @@
        #region[设备点检标准列表查询]
        public static ToMessage DeviceCheckStandArdSearch(string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceCheckStandArdSearch(string stu_torgcode,string stu_torgtypecode,string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
        {
            return DeviceManagerDAL.DeviceCheckStandArdSearch(checkstandcode, checkstandname, checkcontr, startNum, endNum, prop, order);
            return DeviceManagerDAL.DeviceCheckStandArdSearch(stu_torgcode, stu_torgtypecode,checkstandcode, checkstandname, checkcontr, startNum, endNum, prop, order);
        }
        #endregion
@@ -194,18 +194,18 @@
        #endregion
        #region [设备点检标准关联工作站提交]
        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string checkstand_code, string username, List<ObjectData> json)
        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string stu_torgcode,string stu_torgtypecode,string checkstand_code, string username, List<ObjectData> json)
        {
            return DeviceManagerDAL.SaveDeviceCheckStanedAssociationEqp(checkstand_code, username,json);
            return DeviceManagerDAL.SaveDeviceCheckStanedAssociationEqp(stu_torgcode, stu_torgtypecode,checkstand_code, username,json);
        }
        #endregion
        #region[设备保养标准列表查询]
        public static ToMessage DeviceRepairStandArdSearch(string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceRepairStandArdSearch(string stu_torgcode,string stu_torgtypecode, string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
        {
            return DeviceManagerDAL.DeviceRepairStandArdSearch(repairstandcode, repairstandname, repairstanddescr, startNum, endNum, prop, order);
            return DeviceManagerDAL.DeviceRepairStandArdSearch(stu_torgcode, stu_torgtypecode, repairstandcode, repairstandname, repairstanddescr, startNum, endNum, prop, order);
        }
        #endregion
@@ -245,9 +245,9 @@
        #endregion
        #region [设备保养标准关联工作站提交]
        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string repairstand_code, string username, List<ObjectData> json)
        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string stu_torgcode,string stu_torgtypecode, string repairstand_code, string username, List<ObjectData> json)
        {
            return DeviceManagerDAL.SaveDeviceRepairStanedAssociationEqp(repairstand_code, username, json);
            return DeviceManagerDAL.SaveDeviceRepairStanedAssociationEqp(stu_torgcode, stu_torgtypecode, repairstand_code, username, json);
        }
        #endregion
VueWebApi/DLL/BLL/LoginBLL.cs
@@ -61,16 +61,16 @@
        #endregion
        #region[App登出]
        public static ToMessage LoginAppOut(int userid, string usercode, string username, string usertype)
        public static ToMessage LoginAppOut(int userid, string usercode, string username, string usertype,string stu_torgcode)
        {
            return LoginDAL.LoginAppOut(userid, usercode, username, usertype);
            return LoginDAL.LoginAppOut(userid, usercode, username, usertype, stu_torgcode);
        }
        #endregion
        #region[App登录查询安灯呼叫信息]
        public static ToMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype)
        public static ToMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype,string stu_torgcode,string stu_torgtypecode)
        {
            return LoginDAL.LoginAppAnDonMessage(rid, usercode, username, usertype);
            return LoginDAL.LoginAppAnDonMessage(rid, usercode, username, usertype,stu_torgcode, stu_torgtypecode);
        }
        #endregion
    }
VueWebApi/DLL/BLL/ProductModelBLL.cs
@@ -78,9 +78,9 @@
        #endregion
        #region[存货档案查询]
        public static ToMessage InventoryFileSelect(string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode, int startNum, int endNum, string prop, string order)
        public static ToMessage InventoryFileSelect(string stu_torgcode,string stu_torgtypecode, string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode, int startNum, int endNum, string prop, string order)
        {
            return ProductModelDAL.InventoryFileSelect(partcode, partname, partspec, stocktypecode, materialtypecode, storehousecode, startNum, endNum, prop, order);
            return ProductModelDAL.InventoryFileSelect(stu_torgcode, stu_torgtypecode,partcode, partname, partspec, stocktypecode, materialtypecode, storehousecode, startNum, endNum, prop, order);
        }
        #endregion
VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -164,9 +164,9 @@
        #endregion
        #region [生产开报工:开工(开始/报工)/外协发料时条件判断及数据返回接口]
        public static ToMessage MesOrderStepStart(string OperType,string SelectType, string orderstepqrcode)
        public static ToMessage MesOrderStepStart(string OperType,string stu_torgcode, string SelectType, string orderstepqrcode)
        {
            return ProductionManagementDAL.MesOrderStepStart(OperType, SelectType, orderstepqrcode);
            return ProductionManagementDAL.MesOrderStepStart(OperType, stu_torgcode, SelectType, orderstepqrcode);
        }
        #endregion
@@ -185,9 +185,9 @@
        #endregion
        #region[生产开报工:根据生产班组查找人员列表]
        public static ToMessage MesOrderGroupSelectUser(string usergroupcode)
        public static ToMessage MesOrderGroupSelectUser(string stu_torgcode, string usergroupcode)
        {
            return ProductionManagementDAL.MesOrderGroupSelectUser(usergroupcode);
            return ProductionManagementDAL.MesOrderGroupSelectUser(stu_torgcode,usergroupcode);
        }
        #endregion
@@ -249,9 +249,9 @@
        #region[工序检验扫码获取任务信息]
        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode,string checktype)
        public static ToMessage MesOrderStepCheckSearch(string stu_torgcode,string orderstepqrcode,string checktype)
        {
            return ProductionManagementDAL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
            return ProductionManagementDAL.MesOrderStepCheckSearch(stu_torgcode,orderstepqrcode, checktype);
        }
        #endregion
@@ -263,9 +263,9 @@
        #endregion
        #region[工序检验,提交]
        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        public static ToMessage SaveMesOrderStepCheckItem(string stu_torgcode, string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        {
            return ProductionManagementDAL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
            return ProductionManagementDAL.SaveMesOrderStepCheckItem(stu_torgcode,wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
        }
        #endregion
VueWebApi/DLL/BLL/QualityManagementBLL.cs
@@ -95,9 +95,9 @@
        #region[工序检验记录列表查询]
        public static ToMessage StepCheckTableSearch(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, int startNum, int endNum, string prop, string order)
        public static ToMessage StepCheckTableSearch(string stu_torgcode,string stu_torgtypecode, string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, int startNum, int endNum, string prop, string order)
        {
            return QualityManagementDAL.StepCheckTableSearch(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, startNum, endNum, prop, order);
            return QualityManagementDAL.StepCheckTableSearch(stu_torgcode, stu_torgtypecode, wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, startNum, endNum, prop, order);
        }
        #endregion
@@ -109,9 +109,9 @@
        #endregion
        #region[工序检验记录导出]
        public static ToMessage StepCheckTableOutExcel(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, string prop, string order)
        public static ToMessage StepCheckTableOutExcel(string stu_torgcode,string stu_torgtypecode, string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, string prop, string order)
        {
            return QualityManagementDAL.StepCheckTableOutExcel(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, prop, order);
            return QualityManagementDAL.StepCheckTableOutExcel(stu_torgcode, stu_torgtypecode, wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, prop, order);
        }
        #endregion
VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -20,13 +20,28 @@
        public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
        #region[App生产看板]
        public static ToMessage ProductionKanban(string usercode, string startopendate, string endclosedate,string defecttype)
        public static ToMessage ProductionKanban(string stu_torgcode,string stu_torgtypecode,string usercode, string startopendate, string endclosedate,string defecttype)
        {
            Dictionary<object, object> dList = new Dictionary<object, object>();
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and C.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                // --------------生产总览--------------
                var sql = @"select 
                             sum(CASE AA.clmname WHEN '计划数量' THEN AA.clmqty ELSE 0 END) as 'plan_qty', 
@@ -34,16 +49,21 @@
                             sum(CASE AA.clmname WHEN '缺陷产出' THEN AA.clmqty ELSE 0 END) as 'defect_qty'
                             from(
                             select  isnull(sum(A.plan_qty),0) as clmqty,'计划数量'as clmname  from TK_Wrk_Man  A
                             where A.lm_date between @startopendate and @endclosedate
                             union all
                             left join TOrganization C on A.wkshp_code=C.org_code
                             left join TOrganization L on  C.parent_id=L.id
                             where A.lm_date between @startopendate and @endclosedate "+search;
                    sql += @"union all
                             select isnull(sum(P.good_qty),0) as report_qty,'合格产出' as åˆæ ¼äº§å‡º  from TK_Wrk_Man  A
                             inner join TK_Wrk_Step P on A.wo_code=P.wo_code  and P.isend='Y'
                             where A.lm_date between @startopendate and @endclosedate
                             union all
                             left join TOrganization C on A.wkshp_code=C.org_code
                             left join TOrganization L on  C.parent_id=L.id
                             where A.lm_date between @startopendate and @endclosedate "+search;
                    sql += @"union all
                             select (isnull(sum(P.ng_qty),0)+isnull(sum(P.bad_qty),0)) as ngqty,'缺陷产出' as ç¼ºé™·äº§å‡º  from TK_Wrk_Man  A
                             inner join TK_Wrk_Step P on A.wo_code=P.wo_code 
                             where A.lm_date between @startopendate and @endclosedate
                             ) as AA";
                             left join TOrganization C on A.wkshp_code=C.org_code
                             left join TOrganization L on  C.parent_id=L.id
                             where A.lm_date between @startopendate and @endclosedate "+search+") as AA";
                dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
                dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -53,9 +73,9 @@
                             select COUNT(A.id) as cluntqty,
                             case when A.status='START' then '执行中' when A.status='CLOSED' then '已结束' else '未开始' end as wo_status
                             from TK_Wrk_Man A
                             where A.lm_date between @startopendate and @endclosedate
                             group by A.status
                             ) as AA group by AA.wo_status";
                             left join TOrganization C on A.wkshp_code=C.org_code
                             left join TOrganization L on  C.parent_id=L.id
                             where A.lm_date between @startopendate and @endclosedate "+search+" group by A.status) as AA group by AA.wo_status";
                var data1 = DapperHelper.selectdata(sql1, dynamicParams);
                dList.Add("dt1", data1);
                // --------------缺陷统计--------------
@@ -67,20 +87,18 @@
                                  select A.plan_qty,M.partname,S.ng_qty,S.bad_qty   from TK_Wrk_Man A
                                  inner join (select wo_code, isnull(sum(ng_qty),0) as ng_qty,isnull(sum(bad_qty),0) as bad_qty from TK_Wrk_Step where ng_qty>0 or bad_qty>0 group by wo_code) S on A.wo_code=S.wo_code
                                  inner join TMateriel_Info M on A.materiel_code=M.partcode
                                  where A.lm_date between @startopendate and @endclosedate
                                  ) as AA
                                  group by AA.partname
                                  order by defect_qty desc";
                                  left join TOrganization C on A.wkshp_code=C.org_code
                                  left join TOrganization L on  C.parent_id=L.id
                                  where A.lm_date between @startopendate and @endclosedate "+search+") as AA group by AA.partname order by defect_qty desc";
                        break;
                    case "stp"://按工序统计
                         sql2 = @"select top 5 sum(AA.plan_qty) as plan_qty,AA.stepname,sum(AA.ng_qty)+sum(AA.bad_qty) as defect_qty  from (
                                  select A.plan_qty,T.stepname,S.ng_qty,S.bad_qty   from TK_Wrk_Man A
                                  inner join (select wo_code,step_code, isnull(sum(ng_qty),0) as ng_qty,isnull(sum(bad_qty),0) as bad_qty from TK_Wrk_Step where ng_qty>0 or bad_qty>0 group by wo_code,step_code) S on A.wo_code=S.wo_code
                                  inner join TStep T on S.step_code=T.stepcode
                                  where A.lm_date between @startopendate and @endclosedate
                                  ) as AA
                                  group by AA.stepname
                                  order by defect_qty desc";
                                  left join TOrganization C on A.wkshp_code=C.org_code
                                  left join TOrganization L on  C.parent_id=L.id
                                  where A.lm_date between @startopendate and @endclosedate "+search+") as AA group by AA.stepname order by defect_qty desc";
                        break;
                    default:
                        break;
@@ -103,15 +121,30 @@
        #endregion
        #region[App生产进度看板单据信息]
        public static ToMessage ProductionScheduleKanban(string ordertype, string partcode, string startopendate, string endclosedate)
        public static ToMessage ProductionScheduleKanban(string stu_torgcode,string stu_torgtypecode, string ordertype, string partcode, string startopendate, string endclosedate)
        {
            Dictionary<object, object> dList = new Dictionary<object, object>();
            List<AppScheduleKanban> list = new List<AppScheduleKanban>();
            var dynamicParams = new DynamicParameters();
            string search = "",sql="";
            string search = "", search1 = "",sql ="";
            DataTable dt;
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search1 += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search1 += "and C.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                //根据查询条件,查找符合要求的单据
                switch (ordertype)
                {
@@ -268,8 +301,10 @@
                        //获取单据信息
                        sql = @"select distinct A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date,sum(A.plan_qty) as orderqty
                                from TK_Wrk_Man A  
                                left join TOrganization C on A.wkshp_code=C.org_code
                                left join TOrganization L on  C.parent_id=L.id
                                left  join TMateriel_Info T on A.materiel_code=T.partcode
                                where 1=1 "+search+" group by A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date  order by A.lm_date desc";
                                where 1=1 " + search+search1+" group by A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date  order by A.lm_date desc";
                        dt = DapperHelper.selectlist(sql, dynamicParams);
                        if (dt.Rows.Count > 0)
                        {
VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -242,7 +242,7 @@
        #endregion
        #region [组织架构删除]
        public static ToMessage DeleteOrganization(int orgid)
        public static ToMessage DeleteOrganization(int orgid,string orgcode)
        {
            var sql = "";
            var cont = 0;
@@ -251,14 +251,24 @@
            {
                sql = @"select * from  TOrganization  where parent_id=@orgid and is_delete<>'1'";
                dynamicParams.Add(@"orgid", orgid);
                cont = DapperHelper.selectcount(sql, dynamicParams);
                if (cont > 0)
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                if (data0.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.Message = "当前组织有下级关联,请先删除下级组织!";
                    return mes;
                }
                else
                sql = @"select *  from TUser where is_delete<>'1' and stu_torgcode=@stu_torgcode";
                dynamicParams.Add("@stu_torgcode", orgcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "该组织下有关联的用户,不允许删除!";
                    mes.data = null;
                    return mes;
                }
                    sql = @"delete TOrganization   where id=@orgid";
                    dynamicParams.Add(@"orgid", orgid);
                    cont = DapperHelper.SQL(sql, dynamicParams);
@@ -276,7 +286,7 @@
                        mes.Message = "删除操作失败!";
                        mes.data = null;
                    }
                }
            }
            catch (Exception e)
            {
@@ -633,7 +643,7 @@
                sql = @"delete TUserRoleRelation  where user_code=@usercode";
                list.Add(new { str = sql, parm = new { usercode = data.Rows[0]["USERCODE"].ToString() } });
                sql = @"update TUser set is_delete='1'  where id=@userid";
                sql = @"delete TUser  where id=@userid";
                list.Add(new { str = sql, parm = new { userid = userid } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -1097,7 +1107,7 @@
                            from TRoleType R
                            left join TOrganization parent on R.torg_code=parent.org_code 
                            left join TOrganization as child on parent.parent_id=child.id 
                            where  R.is_delete<>'1' " + search;
                            where  R.is_delete<>'1' and roletype_code<>'001' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -1183,12 +1193,22 @@
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                sql = @"select *  from TRole where is_delete<>'1' and roletype_code=@roleTypeCode";
                dynamicParams.Add("@roleTypeCode", roleTypeCode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "该角色类型下有关联的角色明细,不允许删除!";
                    mes.data = null;
                    return mes;
                }
                sql = @"delete TRoleType where roletype_code=@roletypecode";
                list.Add(new { str = sql, parm = new { roletypecode = roleTypeCode } });
                sql = @"delete TRole where roletype_code=@roletypecode";
                list.Add(new { str = sql, parm = new { roletypecode = roleTypeCode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -1421,16 +1441,29 @@
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //更新角色表、角色关联用户标识及删除状态
                sql = @"update TRole set is_user='N',is_right='N',is_delete='1'  where role_code=@RoleCode";
                //查找用户角色关联关系表
                sql = @"select *  from TUserRoleRelation where is_delete<>'1' and role_code=@RoleCode";
                dynamicParams.Add("@RoleCode", RoleCode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "该角色下有关联的用户信息,不允许删除!";
                    mes.data = null;
                    return mes;
                }
                //更新角色表、角色关联用户标识及删除状态set is_user='N',is_right='N',is_delete='1'
                sql = @"delete TRole  where role_code=@RoleCode";
                list.Add(new { str = sql, parm = new { RoleCode = RoleCode } });
                //更新角色关联用户表、角色关联用户标识及删除状态
                sql = @"delete TUserRoleRelation  where role_code=@RoleCode";
                list.Add(new { str = sql, parm = new { RoleCode = RoleCode } });
                //删除(更新状态)角色功能表
                sql = @"update TRoleRightRelation set is_delete='1'  where role_code=@RoleCode";
                sql = @"delete TRoleRightRelation   where role_code=@RoleCode";
                list.Add(new { str = sql, parm = new { RoleCode = RoleCode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
VueWebApi/DLL/DAL/DeviceManagerDAL.cs
@@ -1062,12 +1062,28 @@
        #region[设备点检标准列表查询]
        public static ToMessage DeviceCheckStandArdSearch(string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceCheckStandArdSearch(string stu_torgcode,string stu_torgtypecode,string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            string search1 = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search1 += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search1 += "and F.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                if (checkstandcode != "" && checkstandcode != null)
                {
                    search += "and A.code like '%'+@checkstandcode+'%' ";
@@ -1090,10 +1106,15 @@
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.code,A.name,A.description,A.iscontr,A.is_checkeqp,U.username as lm_user,A.lm_date
                var sql = @"select A.id,A.code,A.name,A.description,A.iscontr,
                            (case when isnull(M.eqpchkmain_code,'')='' then 'N' else 'Y' end) as is_checkeqp,U.username as lm_user,A.lm_date
                            from TEqpchk_Main A
                            left join TUser U on A.lm_user=U.usercode
                            where A.is_delete<>'1' " + search;
                            left join (
                            select distinct eqpchkmain_code from TEqpchk_Eqp M
                            left join TOrganization F on M.torg_code=F.org_code
                            left join TOrganization as L on F.parent_id=L.id
                            where  1=1 "+search1+")  M on A.code=M.eqpchkmain_code where A.is_delete<>'1' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -1323,7 +1344,7 @@
                sql = @"delete TEqpchk_Deta  where eqpchk_main_code=@checkstand_code";
                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                //删除设备点检标准关联设备表
                sql = @"delete TEqpchk_Eqp  where eqpchk_main_code=@checkstand_code";
                sql = @"delete TEqpchk_Eqp  where eqpchkmain_code=@checkstand_code";
                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -1447,31 +1468,45 @@
        #endregion
        #region [设备点检标准关联工作站提交]
        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string checkstand_code, string username, List<ObjectData> json)
        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string stu_torgcode, string stu_torgtypecode, string checkstand_code, string username, List<ObjectData> json)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            string search = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                switch (stu_torgtypecode)
                {
                    case "":
                    //清除设备点检标准关联设备表数据
                    sql = @"delete TEqpchk_Eqp where eqpchkmain_code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                    //标记设备点检标准表关联工作站标识
                    sql = @"update TEqpchk_Main set is_checkeqp='N' where code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                        break;
                    case "D":
                        //清除设备点检标准关联设备表数据
                        sql = @"delete from TEqpchk_Eqp where id in (select A.id   from TEqpchk_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eqpchkmain_code=@checkstand_code and  L.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code, stu_torgcode = stu_torgcode } });
                        break;
                    case "W":
                        //清除设备点检标准关联设备表数据
                        sql = @"delete from TEqpchk_Eqp where id in (select A.id   from TEqpchk_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eqpchkmain_code=@checkstand_code and  T.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code, stu_torgcode = stu_torgcode } });
                        break;
                }
                else
                if (json != null && json.Count > 0)
                {
                    //清除设备点检标准关联设备表数据
                    sql = @"delete TEqpchk_Eqp where eqpchkmain_code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                    //循环写入设备点检标准关联设备表
                    for (int i = 0; i < json.Count; i++)
                    {
                        sql = @"insert into TEqpchk_Eqp(eqpchkmain_code,eqp_code,lm_user,lm_date) values(@checkstand_code,@eqp_code,@lm_user,@lm_date)";
                        sql = @"insert into TEqpchk_Eqp(eqpchkmain_code,eqp_code,lm_user,lm_date,torg_code) values(@checkstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
                        list.Add(new
                        {
                            str = sql,
@@ -1480,13 +1515,11 @@
                                eqp_code = json[i].code,
                                checkstand_code = checkstand_code,
                                lm_user = username,
                                lm_date = DateTime.Now.ToString()
                                lm_date = DateTime.Now.ToString(),
                                torg_code= json[i].flag
                            }
                        });
                    }
                    //标记设备点检标准表关联工作站标识
                    sql = @"update TEqpchk_Main set is_checkeqp='Y' where code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -1518,12 +1551,28 @@
        #region[设备保养标准列表查询]
        public static ToMessage DeviceRepairStandArdSearch(string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceRepairStandArdSearch(string stu_torgcode,string stu_torgtypecode, string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            string search1 = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search1 += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search1 += "and F.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                if (repairstandcode != "" && repairstandcode != null)
                {
                    search += "and A.code like '%'+@repairstandcode+'%' ";
@@ -1547,10 +1596,16 @@
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.code,A.name,A.description,A.is_repaireqp,A.main_cycle,U.username as lm_user,A.lm_date
                var sql = @"select A.id,A.code,A.name,A.description,
                            (case when isnull(M.eapmai_code,'')='' then 'N' else 'Y' end) as is_repaireqp,
                            A.main_cycle,U.username as lm_user,A.lm_date
                            from TEqpmai_Main A
                            left join TUser U on A.lm_user=U.usercode
                            where A.is_delete<>'1' " + search;
                            left join (
                            select distinct eapmai_code from TEqpmai_Eqp M
                            left join TOrganization F on M.torg_code=F.org_code
                            left join TOrganization as L on F.parent_id=L.id
                            where  1=1 "+search1+")  M on A.code=M.eapmai_code where A.is_delete<>'1' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -1904,31 +1959,43 @@
        #endregion
        #region [设备保养标准关联工作站提交]
        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string repairstand_code, string username, List<ObjectData> json)
        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string stu_torgcode,string stu_torgtypecode, string repairstand_code, string username, List<ObjectData> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                switch (stu_torgtypecode)
                {
                    case "":
                    //清除设备保养标准关联设备表数据
                    sql = @"delete TEqpmai_Eqp where eapmai_code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                    //标记设备保养标准表关联工作站标识
                    sql = @"update TEqpmai_Main set is_repaireqp='N' where code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                        break;
                    case "D":
                        //清除设备保养标准关联设备表数据
                        sql = @"delete from TEqpmai_Eqp where id in (select A.id   from TEqpmai_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eapmai_code=@repairstand_code and  L.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code, stu_torgcode = stu_torgcode } });
                        break;
                    case "W":
                        //清除设备保养标准关联设备表数据
                        sql = @"delete from TEqpmai_Eqp where id in (select A.id   from TEqpmai_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eapmai_code=@repairstand_code and  L.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code, stu_torgcode = stu_torgcode } });
                        break;
                }
                else
                if (json != null && json.Count > 0)
                {
                    //清除设备保养标准关联设备表数据
                    sql = @"delete TEqpmai_Eqp where eapmai_code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                    //循环写入设备保养标准关联设备表
                    for (int i = 0; i < json.Count; i++)
                    {
                        sql = @"insert into TEqpmai_Eqp(eapmai_code,eqp_code,lm_user,lm_date) values(@repairstand_code,@eqp_code,@lm_user,@lm_date)";
                        sql = @"insert into TEqpmai_Eqp(eapmai_code,eqp_code,lm_user,lm_date,torg_code) values(@repairstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
                        list.Add(new
                        {
                            str = sql,
@@ -1937,13 +2004,11 @@
                                eqp_code = json[i].code,
                                repairstand_code = repairstand_code,
                                lm_user = username,
                                lm_date = DateTime.Now.ToString()
                                lm_date = DateTime.Now.ToString(),
                                torg_code= json[i].flag
                            }
                        });
                    }
                    //标记设备保养标准表关联工作站标识
                    sql = @"update TEqpmai_Main set is_repaireqp='Y' where code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
VueWebApi/DLL/DAL/LoginDAL.cs
@@ -347,7 +347,7 @@
        #endregion
        #region[App登出]
        public static ToMessage LoginAppOut(int userid, string usercode, string username, string usertype)
        public static ToMessage LoginAppOut(int userid, string usercode, string username, string usertype,string stu_torgcode)
        {
            var sql = "";
            var cont = 0;
@@ -355,15 +355,16 @@
            RedisHelper redis = new RedisHelper();
            try
            {
                sql = @"insert into T_Bas_Login(usercode,status,outdate,origin)
                            values(@usercode,'N',@outdate,@usertype)";
                sql = @"insert into T_Bas_Login(usercode,status,outdate,origin,torg_code)
                            values(@usercode,'N',@outdate,@usertype,@stu_torgcode)";
                dynamicParams.Add("@usercode", usercode);
                dynamicParams.Add("@usertype", usertype);
                dynamicParams.Add("@outdate", DateTime.Now.ToString());
                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                cont = DapperHelper.SQL(sql, dynamicParams);
                if (cont > 0)
                {
                    redis.Remove(Enterprise + "LoginUserID" + usertype + userid, 1); //删除redis
                    redis.Remove(Enterprise + stu_torgcode + "LoginUserID" + usertype + userid, 1); //删除redis
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "登出成功!";
@@ -389,12 +390,30 @@
        #endregion
        #region[App登录查询安灯呼叫信息]
        public static ToMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype)
        public static ToMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype,string stu_torgcode,string stu_torgtypecode)
        {
            var sql = "";
            string search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        search += "and T.description=@description ";
                        dynamicParams.Add("@description", "W");
                        break;
                    case "D":
                        search += "and child.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and T.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                sql = @"select B.eqp_code,E.name as eqp_name,B.wkshp_code,T.org_name as wkshp_name,
                        A.type as typecode,D.name as typename,B.start_user,B.start_date   
                        from TAnDnMessagePush A
@@ -403,7 +422,8 @@
                        left  join TOrganization T on B.wkshp_code=T.org_code 
                        left  join TAnDonType D on A.type=d.code
                        left  join TUser U on A.resp_user=U.usercode
                        where A.resp_user=@usercode and B.status='START' and U.rid=@rid";
                        left join TOrganization as child on T.parent_id=child.id
                        where A.resp_user=@usercode and B.status='START' and U.rid=@rid "+search;
                dynamicParams.Add("@usercode", usercode);
                dynamicParams.Add("@rid", rid);
                var data = DapperHelper.selectdata(sql, dynamicParams);
VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -421,12 +421,28 @@
        #endregion
        #region[存货档案查询]
        public static ToMessage InventoryFileSelect(string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode, int startNum, int endNum, string prop, string order)
        public static ToMessage InventoryFileSelect(string stu_torgcode,string stu_torgtypecode,string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            string search1 = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search1 += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search1 += "and F.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and A.partcode like '%'+@partcode+'%' ";
@@ -473,9 +489,10 @@
                            left join T_Sec_Stck T on A.stck_code=T.code 
                            left join TUser U on A.lm_user=U.usercode
                            left join (
                              select distinct materiel_code from TMateriel_Route
                            )  M on A.partcode=M.materiel_code
                            where A.is_delete<>'1' " + search;
                               select distinct materiel_code from TMateriel_Route M
                               left join TOrganization F on M.torg_code=F.org_code
                               left join TOrganization as L on F.parent_id=L.id
                               where  1=1 "+search1+")  M on A.partcode=M.materiel_code where A.is_delete<>'1' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -657,6 +674,18 @@
                }
                //当前物料是否生成出入库记录
                //有没有被工单引用
                sql = @"select *  from TK_Wrk_Man
                        where materiel_code=@materialcode";
                dynamicParams.Add("@materialcode", materialcode);
                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                if (data2.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "物料已有关联的生产工单,不允许删除!";
                    mes.data = null;
                    return mes;
                }
                //删除物料
                sql = @"delete TMateriel_Info  where partcode=@materialcode";
@@ -760,12 +789,12 @@
        public static ToMessage SaveInventoryFile(string stu_torgcode,string stu_torgtypecode, string partcode, string defaultroute_code, string username, List<PartRout> json)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            string search = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                {
                    switch (stu_torgtypecode)
                    {
                        case "":
@@ -790,33 +819,10 @@
                            list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
                            break;
                    }
                }
                else
                if (json != null && json.Count >0)
                {
                    switch (stu_torgtypecode)
                    {
                        case "":
                            //清除物料关联工艺路线表数据
                            sql = @"delete TMateriel_Route where materiel_code=@partcode";
                            list.Add(new { str = sql, parm = new { partcode = partcode } });
                            break;
                        case "D":
                            //清除物料关联工艺路线表数据
                            sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.materiel_code=@partcode and  L.org_code=@stu_torgcode)";
                            list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
                            break;
                        case "W":
                            //清除物料关联工艺路线表数据
                            sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.materiel_code=@partcode and  T.org_code=@stu_torgcode)";
                            list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
                            break;
                    }
                    //物料+组织查询节拍工价表中对应的所有工艺路线,然后根据传过来的做对比,再去删除节拍工价表
                    //循环写入用户关联角色表
                    for (int i = 0; i < json.Count; i++)
                    {
@@ -1905,12 +1911,19 @@
                    //标记工序表关联工作站标识
                    sql = @"update TStep set is_eqp='N' where stepcode=@stepcode";
                    list.Add(new { str = sql, parm = new { stepcode = stepcode } });
                    //根据工序清除节拍工价表
                    sql = @"delete TPrteEqp_Stad where step_code=@stepcode";
                    list.Add(new { str = sql, parm = new { stepcode = stepcode } });
                }
                else
                {
                    //清除工序关联工作站表数据
                    sql = @"delete TFlw_Rteqp where step_code=@stepcode";
                    list.Add(new { str = sql, parm = new { stepcode = stepcode } });
                    //根据工序清除节拍工价表
                    sql = @"delete TPrteEqp_Stad where step_code=@stepcode";
                    list.Add(new { str = sql, parm = new { stepcode = stepcode } });
                    //循环写入用户关联角色表
                    for (int i = 0; i < json.Count; i++)
                    {
@@ -2307,6 +2320,7 @@
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            string search1 = "";
            try
            {
                switch (stu_torgtypecode)
@@ -2314,11 +2328,11 @@
                    case "":
                        break;
                    case "D":
                        search += "and L.org_code=@stu_torgcode ";
                        search1 += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and F.org_code=@stu_torgcode ";
                        search1 += "and F.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
@@ -2358,9 +2372,22 @@
                            left join TFlw_Rout C on A.route_code=C.code
                            left join TStep D on A.step_code=D.stepcode
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TOrganization F on E.wksp_code=F.org_code
                            left join TOrganization F on C.torg_code=F.org_code
                            left join TOrganization L on  F.parent_id=L.id
                            where B.is_delete<>'1' and C.is_delete<>'1' and D.is_delete<>'1' and E.is_delete<>'1' and F.is_delete<>'1' " + search;
                            where B.is_delete<>'1' and C.is_delete<>'1' and D.is_delete<>'1' and E.is_delete<>'1' and F.is_delete<>'1' " + search1 + search;
                    sql += @"union all
                            select A.materiel_code as partcode,B.partname,B.partspec,A.route_code,C.name as route_name,
                            D.stepcode,D.stepname,A.eqp_code,E.name as eqp_name,''as wksp_code,'' as wksp_name,
                            A.eqp_value,A.stand_value,A.cavity_qty,A.unprice
                            from TPrteEqp_Stad A
                            left join TMateriel_Info B on A.materiel_code=B.partcode
                            left join TFlw_Rout C on A.route_code=C.code
                            left join TStep D on A.step_code=D.stepcode
                            left join TCustomer E on A.eqp_code=E.code
                            left join TOrganization F on C.torg_code=F.org_code
                            left join TOrganization L on  F.parent_id=L.id
                            where B.is_delete<>'1' and C.is_delete<>'1' and D.is_delete<>'1' and E.is_delete<>'1' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -647,7 +647,8 @@
                sql = @"select B.step_code,C.eqp_code from TFlw_Rout A
                        inner join TFlw_Rtdt B on A.code=B.rout_code
                        left join TFlw_Rteqp C on B.step_code=C.step_code
                        where A.code=@routecode";
                        where A.code=@routecode and A.torg_code=@wkshopcode";
                dynamicParams.Add("@wkshopcode", wkshopcode);
                dynamicParams.Add("@routecode", routecode);
                var dtck = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dtck.Rows.Count; i++)
@@ -664,7 +665,8 @@
                //判断工作站(设备)是否可用
                sql = @"select B.step_code  from TFlw_Rout  A
                        inner join TFlw_Rtdt B on A.code=B.rout_code
                        where A.code=@routecode";
                        where A.code=@routecode and A.torg_code=@wkshopcode";
                dynamicParams.Add("@wkshopcode", wkshopcode);
                dynamicParams.Add("@routecode", routecode);
                var dtck1 = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dtck1.Rows.Count; i++)
@@ -673,7 +675,8 @@
                    sql = @"select E.code,E.name,E.enable  
                        from  TFlw_Rteqp C
                        left join TEqpInfo E on C.eqp_code=E.code 
                        where C.step_code=@step_code";
                        where C.step_code=@step_code and C.torg_code=@wkshopcode";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                    dynamicParams.Add("@step_code", dtck1.Rows[i]["step_code"].ToString());
                    var dtck2 = DapperHelper.selectdata(sql, dynamicParams);
                    int query = dtck2.AsEnumerable().Where<DataRow>(a => a["enable"].ToString() == "N").Count();
@@ -692,12 +695,13 @@
                        inner join TFlw_Rtdt B on A.code=B.rout_code
                        left join TFlw_Rteqp C on B.step_code=C.step_code
                        left join TStep S on B.step_code=S.stepcode
                        where A.code=@route_code
                        where A.code=@route_code and A.torg_code=@wkshopcode
                        ) as AA
                        left join (select * from TPrteEqp_Stad   where materiel_code=@partcode and route_code=@route_code) as S on
                        left join (select * from TPrteEqp_Stad   where materiel_code=@partcode and route_code=@route_code and wkspcode=@wkshopcode) as S on
                        AA.code=S.route_code and AA.step_code=S.step_code and AA.eqp_code=S.eqp_code";
                dynamicParams.Add("@partcode", partcode);
                dynamicParams.Add("@route_code", routecode);
                dynamicParams.Add("@wkshopcode", wkshopcode);
                var dtc = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dtc.Rows.Count; i++)
                {
@@ -1815,7 +1819,7 @@
        #endregion
        #region [生产开报工:开工(开始/报工)/外协发料时条件判断及数据返回接口]
        public static ToMessage MesOrderStepStart(string OperType, string SelectType, string orderstepqrcode)
        public static ToMessage MesOrderStepStart(string OperType,string stu_torgcode, string SelectType, string orderstepqrcode)
        {
            var sql = "";
            string search = "";
@@ -1844,10 +1848,10 @@
                    switch (OperType)
                    {
                        case "ZZ":
                            mes = ScanStartReport.ZZEncodingSeach(ordercode, stepcode);
                            mes = ScanStartReport.ZZEncodingSeach(stu_torgcode,ordercode, stepcode);
                            break;
                        case "WX":
                            mes = ScanStartReport.WXEncodingSeach(SelectType, ordercode, stepcode);
                            mes = ScanStartReport.WXEncodingSeach(stu_torgcode,SelectType, ordercode, stepcode);
                            break;
                        default:
                            break;
@@ -1977,14 +1981,15 @@
        #endregion
        #region[生产开报工:根据生产班组查找人员列表]
        public static ToMessage MesOrderGroupSelectUser(string usergroupcode)
        public static ToMessage MesOrderGroupSelectUser(string stu_torgcode, string usergroupcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //班组获取人员列表
                sql = @"select usercode,username  from TUser where usergroup_code=@usergroupcode and is_delete<>'1'";
                sql = @"select usercode,username  from TUser where stu_torgcode=@stu_torgcode and usergroup_code=@usergroupcode and is_delete<>'1'";
                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                dynamicParams.Add("@usergroupcode", usergroupcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
@@ -2844,7 +2849,7 @@
        #region[工序检验扫码获取任务信息]
        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
        public static ToMessage MesOrderStepCheckSearch(string stu_torgcode, string orderstepqrcode, string checktype)
        {
            var sql = "";
            string ordercode = "";
@@ -2869,6 +2874,34 @@
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                    //判断当前工单是否关闭
                    sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'";
                    dynamicParams.Add("@ordercode", ordercode);
                    dynamicParams.Add("@stu_torgcode", stu_torgcode);
                    var da0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (da0.Rows.Count > 0)
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "当前工单已关闭,不允许检验操作!";
                        mes.data = null;
                        return mes;
                    }
                    //0.判断当前工单所属车间是否为当前登录人员车间
                    sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode";
                    dynamicParams.Add("@ordercode", ordercode);
                    dynamicParams.Add("@stu_torgcode", stu_torgcode);
                    var da1 = DapperHelper.selectdata(sql, dynamicParams);
                    if (da1.Rows.Count <= 0)
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "不是本车间生产任务,不允许检验操作!";
                        mes.data = null;
                        return mes;
                    }
                    //通过扫描二维码信息查找任务信息
                    sql = @"select A.wo_code,A.good_qty,M.partcode,M.partname,M.partspec,M.stocktype_code,S.stepcode,S.stepname  
                            from TK_Wrk_Step A
@@ -2992,7 +3025,7 @@
        #endregion
        #region[工序检验,提交]
        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        public static ToMessage SaveMesOrderStepCheckItem(string stu_torgcode,string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        {
            var sql = "";
            string checktypename = "";
@@ -3006,8 +3039,8 @@
                list.Clear();
                //写入检验记录主表
                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date)
                                values(@wo_code,@partcode,@step_code,@checkstaned_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date)";
                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date,torg_code)
                                values(@wo_code,@partcode,@step_code,@checkstaned_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date,@torg_code)";
                switch (check_type)
                {
                    case "FirstCheck":
@@ -3040,14 +3073,15 @@
                        good_qty = decimal.Parse(goodqty),
                        ng_qty = decimal.Parse(ngqty),
                        lm_user = username,
                        lm_date = datetime
                        lm_date = datetime,
                        torg_code = stu_torgcode
                    }
                });
                //写入检验记录子表
                for (int j = 0; j < arra.Count; j++)
                {
                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date)
                                values(CONVERT(INT,IDENT_CURRENT('TStepCheckRecord')),@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date)";
                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date,torg_code)
                                values(CONVERT(INT,IDENT_CURRENT('TStepCheckRecord')),@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date,@torg_code)";
                    list.Add(new
                    {
                        str = sql,
@@ -3061,7 +3095,8 @@
                            check_value = arra[j]["check_value"].ToString(),
                            check_result = arra[j]["check_result"].ToString(),
                            lm_user = username,
                            lm_date = datetime
                            lm_date = datetime,
                            torg_code = stu_torgcode
                        }
                    });
                }
VueWebApi/DLL/DAL/QualityManagementDAL.cs
@@ -661,12 +661,27 @@
        #region[工序检验记录列表查询]
        public static ToMessage StepCheckTableSearch(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, int startNum, int endNum, string prop, string order)
        public static ToMessage StepCheckTableSearch(string stu_torgcode,string stu_torgtypecode, string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and C.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and A.wo_code like '%'+@wocode+'%' ";
@@ -716,6 +731,9 @@
                            left join TStep S on A.step_code=S.stepcode
                            left join TStepCheckStandard T on A.checkstaned_code=T.code
                            left join TUser U on A.check_user=U.usercode 
                            left join TK_Wrk_Man M on A.wo_code=M.wo_code
                            left join TOrganization C on A.torg_code=C.org_code
                            left join TOrganization L on  C.parent_id=L.id
                            where A.check_type in('FirstCheck','PatroCheck','EndCheck') " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
@@ -783,12 +801,27 @@
        #endregion
        #region[工序检验记录导出]
        public static ToMessage StepCheckTableOutExcel(string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, string prop, string order)
        public static ToMessage StepCheckTableOutExcel(string stu_torgcode,string stu_torgtypecode, string wocode, string partcode, string partname, string partapec, string stepname, string standname, string checktype, string checkresult, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and G.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and A.wo_code like '%'+@wocode+'%' ";
@@ -880,6 +913,9 @@
                            left join TStepCheckStandard T on A.checkstaned_code=T.code
                            left  join TStepCheckStandardSub C on A.checkstaned_code=C.stepstaned_code and B.checkitem_code=C.stepcheckitem_code
                            left join TUser U on A.check_user=U.usercode  
                            left join TK_Wrk_Man K on A.wo_code=K.wo_code
                            left join TOrganization G on A.torg_code=G.org_code
                            left join TOrganization L on  G.parent_id=L.id
                            where A.check_type in('FirstCheck','PatroCheck','EndCheck') " + search;
                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                data.TableName = "Table"; //设置DataTable的名称
VueWebApi/DLL/DAL/ReportManagerDAL.cs
@@ -646,7 +646,7 @@
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select K.wkshp_code as è½¦é—´ç¼–码,F.org_name as è½¦é—´åç§°,AA.wo_code as å·¥å•编号,AA.partcode as äº§å“ç¼–码,AA.partname as äº§å“åç§°,AA.partspec as äº§å“è§„æ ¼,AA.stepcode as å·¥åºç¼–码,AA.stepname as å·¥åºåç§°,AA.isend as æ˜¯å¦æœ«é“工序,
                var sql = @"select AA.wkshp_code as è½¦é—´ç¼–码,AA.wkshp_name as è½¦é—´åç§°,AA.wo_code as å·¥å•编号,AA.partcode as äº§å“ç¼–码,AA.partname as äº§å“åç§°,AA.partspec as äº§å“è§„æ ¼,AA.stepcode as å·¥åºç¼–码,AA.stepname as å·¥åºåç§°,AA.isend as æ˜¯å¦æœ«é“工序,
                            AA.task_qty as ä»»åŠ¡æ•°é‡,AA.group_code as ç”Ÿäº§ç­ç»„编码,AA.group_name as ç”Ÿäº§ç­ç»„名称,AA.report_qty as æŠ¥å·¥æ•°é‡,AA.unprice as å·¥åºå•ä»·,AA.ratio as åˆ†é…æ¯”例,
                            AA.moneys as è®¡ä»¶å·¥èµ„,AA.username as æŠ¥å·¥äººå‘˜,AA.report_date as æŠ¥å·¥æ—¶é—´
                            from (
VueWebApi/Excel/Óû§Çåµ¥.xls
Binary files differ
VueWebApi/Excel/½ÚÅŤ¼Û.xls
Binary files differ
VueWebApi/Excel/½ÇÉ«Çåµ¥.xls
Binary files differ
VueWebApi/Excel/É豸Çåµ¥.xls
Binary files differ
VueWebApi/InExcel/2/Óû§Çåµ¥.xls
Binary files differ
VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
@@ -5,7 +5,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_PublishTargetUrl>D:\网站发布\MES正清河</_PublishTargetUrl>
    <History>True|2023-06-13T02:24:59.6876648Z;</History>
    <History>True|2023-06-26T00:15:27.3611577Z;True|2023-06-25T15:36:41.8736654+08:00;True|2023-06-25T14:33:49.5287543+08:00;True|2023-06-13T10:24:59.6876648+08:00;</History>
  </PropertyGroup>
  <ItemGroup>
    <File Include="Areas/HelpPage/HelpPage.css">
@@ -714,13 +714,13 @@
      <publishTime>12/24/2021 15:38:29</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll">
      <publishTime>06/17/2023 11:08:15</publishTime>
      <publishTime>06/29/2023 14:43:31</publishTime>
    </File>
    <File Include="bin/VueWebApi.pdb">
      <publishTime>06/17/2023 11:08:15</publishTime>
      <publishTime>06/29/2023 14:43:31</publishTime>
    </File>
    <File Include="bin/VueWebApi.xml">
      <publishTime>06/17/2023 11:08:15</publishTime>
      <publishTime>06/29/2023 14:43:31</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>02/08/2013 16:42:28</publishTime>
@@ -801,16 +801,16 @@
      <publishTime>11/07/2022 17:57:07</publishTime>
    </File>
    <File Include="Excel/用户清单.xls">
      <publishTime>07/20/2022 10:52:30</publishTime>
      <publishTime>06/18/2023 07:56:48</publishTime>
    </File>
    <File Include="Excel/缺陷定义.xls">
      <publishTime>08/12/2022 10:41:48</publishTime>
    </File>
    <File Include="Excel/节拍工价.xls">
      <publishTime>09/06/2022 18:29:08</publishTime>
      <publishTime>06/18/2023 07:56:47</publishTime>
    </File>
    <File Include="Excel/角色清单.xls">
      <publishTime>07/22/2022 11:26:24</publishTime>
      <publishTime>06/18/2023 07:56:48</publishTime>
    </File>
    <File Include="Excel/设备保养标准.xls">
      <publishTime>11/18/2022 09:16:10</publishTime>
@@ -819,7 +819,7 @@
      <publishTime>08/29/2022 12:08:02</publishTime>
    </File>
    <File Include="Excel/设备清单.xls">
      <publishTime>11/07/2022 16:13:05</publishTime>
      <publishTime>06/26/2023 10:40:14</publishTime>
    </File>
    <File Include="Excel/设备点检标准.xls">
      <publishTime>11/18/2022 09:15:43</publishTime>
@@ -1125,7 +1125,7 @@
      <publishTime>06/16/2022 13:39:23</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>06/17/2023 11:08:21</publishTime>
      <publishTime>06/29/2023 14:43:39</publishTime>
    </File>
  </ItemGroup>
</Project>
VueWebApi/Tools/ImportExcelData.cs
@@ -27,7 +27,7 @@
                return Message;
            }
            else if (excelTable[0].Columns.Count != 4)
            else if (excelTable[0].Columns.Count != 5)
            {
                code = "300";
                Message = "用户班组模板不符合规范,请检查列名字段数";
@@ -45,19 +45,25 @@
                Message = "用户班组模板:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[0].Columns[1].ColumnName != "班组编号(唯一)")
            else if (excelTable[0].Columns[1].ColumnName != "组织编码")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第2列应为{组织编码}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "班组编号(唯一)")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第2列应为{班组编号(唯一)}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "班组名称")
            else if (excelTable[0].Columns[3].ColumnName != "班组名称")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第3列应为{班组名称}";
                return Message;
            }
            else if (excelTable[0].Columns[3].ColumnName != "班组描述")
            else if (excelTable[0].Columns[4].ColumnName != "班组描述")
            {
                code = "300";
                Message = "用户班组模板:表头信息不符合规范,第4列应为{班组描述}";
@@ -146,13 +152,13 @@
                return Message;
            }
            else if (excelTable[0].Columns.Count != 3)
            else if (excelTable[0].Columns.Count != 4)
            {
                code = "300";
                Message = "角色类型模板不符合规范,请检查列名字段数";
                return Message;
            }
            else if (excelTable[1].Columns.Count != 5)
            else if (excelTable[1].Columns.Count != 6)
            {
                code = "300";
                Message = "模板角色清单不符合规范,请检查列名字段数";
@@ -164,13 +170,19 @@
                Message = "角色类型模板:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[0].Columns[1].ColumnName != "角色类型编号(唯一)")
            else if (excelTable[0].Columns[1].ColumnName != "组织编码")
            {
                code = "300";
                Message = "角色类型模板:表头信息不符合规范,第1列应为{组织编码}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "角色类型编号(唯一)")
            {
                code = "300";
                Message = "角色类型模板:表头信息不符合规范,第2列应为{角色类型编号(唯一)}";
                return Message;
            }
            else if (excelTable[0].Columns[2].ColumnName != "角色类型名称")
            else if (excelTable[0].Columns[3].ColumnName != "角色类型名称")
            {
                code = "300";
                Message = "角色类型模板:表头信息不符合规范,第3列应为{角色类型名称}";
@@ -182,25 +194,31 @@
                Message = "角色清单模板:表头信息不符合规范,第1列应为{序号}";
                return Message;
            }
            else if (excelTable[1].Columns[1].ColumnName != "角色编号(唯一)")
            else if (excelTable[1].Columns[1].ColumnName != "组织编码")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第1列应为{组织编码}";
                return Message;
            }
            else if (excelTable[1].Columns[2].ColumnName != "角色编号(唯一)")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第2列应为{角色编号(唯一)}";
                return Message;
            }
            else if (excelTable[1].Columns[2].ColumnName != "角色姓名")
            else if (excelTable[1].Columns[3].ColumnName != "角色姓名")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第3列应为{角色姓名}";
                return Message;
            }
            else if (excelTable[1].Columns[3].ColumnName != "角色类型编码")
            else if (excelTable[1].Columns[4].ColumnName != "角色类型编码")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第4列应为{角色类型编码}";
                return Message;
            }
            else if (excelTable[1].Columns[4].ColumnName != "角色描述")
            else if (excelTable[1].Columns[5].ColumnName != "角色描述")
            {
                code = "300";
                Message = "角色清单模板:表头信息不符合规范,第5列应为{角色描述}";
@@ -569,23 +587,13 @@
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToThreeTableList(FileCode);
            if (excelTable.Count != 6)
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "导入模板不符合规范,请检查Sheet数";
            }
            else if (excelTable[0].Columns.Count != 4)
            {
                code = "300";
                Message = "设备清单模板(设备类型)不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 5)
            {
                code = "300";
                Message = "设备清单模板(设备组)不符合规范,请检查列名字段数";
            }
            else if (excelTable[2].Columns.Count != 9)
            else if (excelTable[0].Columns.Count != 7)
            {
                code = "300";
                Message = "设备清单模板(设备清单)不符合规范,请检查列名字段数";
@@ -593,89 +601,34 @@
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第1列应为{序号}";
            }
            else if (excelTable[0].Columns[1].ColumnName != "设备类型编号(唯一)")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第2列应为{设备类型编号(唯一)}";
            }
            else if (excelTable[0].Columns[2].ColumnName != "设备类型名称")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第3列应为{设备类型名称}";
            }
            else if (excelTable[0].Columns[3].ColumnName != "设备类型描述")
            {
                code = "300";
                Message = "设备清单模板(设备类型):表头信息不符合规范,第4列应为{设备类型描述}";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第1列应为{序号}";
            }
            else if (excelTable[1].Columns[1].ColumnName != "设备组编号(唯一)")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第2列应为{设备组编号(唯一)}";
            }
            else if (excelTable[1].Columns[2].ColumnName != "设备组名称")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第3列应为{设备组名称}";
            }
            else if (excelTable[1].Columns[3].ColumnName != "设备类型编号")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第4列应为{设备类型编号}";
            }
            else if (excelTable[1].Columns[4].ColumnName != "设备组描述")
            {
                code = "300";
                Message = "设备清单模板(设备组):表头信息不符合规范,第5列应为{设备组描述}";
            }
            else if (excelTable[2].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{序号}";
            }
            else if (excelTable[2].Columns[1].ColumnName != "设备编号(唯一)")
            else if (excelTable[0].Columns[1].ColumnName != "设备编号(唯一)")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备编号(唯一)}";
            }
            else if (excelTable[2].Columns[2].ColumnName != "设备名称")
            else if (excelTable[0].Columns[2].ColumnName != "设备名称")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备名称}";
            }
            else if (excelTable[2].Columns[3].ColumnName != "设备类型编号")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备类型编号}";
            }
            else if (excelTable[2].Columns[4].ColumnName != "设备组编号")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{设备组编号}";
            }
            else if (excelTable[2].Columns[5].ColumnName != "投入日期")
            else if (excelTable[0].Columns[3].ColumnName != "投入日期")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{投入日期}";
            }
            else if (excelTable[2].Columns[6].ColumnName != "生产车间")
            else if (excelTable[0].Columns[4].ColumnName != "车间编码")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{生产车间}";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{车间编码}";
            }
            else if (excelTable[2].Columns[7].ColumnName != "使用状态")
            else if (excelTable[0].Columns[5].ColumnName != "使用状态")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{使用状态}";
            }
            else if (excelTable[2].Columns[8].ColumnName != "稼动率(%)")
            else if (excelTable[0].Columns[6].ColumnName != "稼动率(%)")
            {
                code = "300";
                Message = "设备清单模板(设备清单):表头信息不符合规范,第1列应为{稼动率(%)}";
@@ -1917,17 +1870,17 @@
            //主表
            for (int j = 0; j < excelTable[0].Rows.Count; j++)
            {
                if (excelTable[0].Rows[j][1].ToString().Trim() != null && excelTable[0].Rows[j][1].ToString().Trim() != "")
                if (excelTable[0].Rows[j][2].ToString().Trim() != null && excelTable[0].Rows[j][2].ToString().Trim() != "")
                {
                    sql = @"select *  from TGroup where group_code=@group_code";
                    dynamicParams.Add("@group_code", excelTable[0].Rows[j][1].ToString().Trim());
                    dynamicParams.Add("@group_code", excelTable[0].Rows[j][2].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{班组编码(唯一)}";
                        erro.ErrorCont = "班组表:{班组编码(唯一)}字段" + excelTable[0].Rows[j][1].ToString().Trim() + "已存在";
                        erro.ErrorCont = "班组表:{班组编码(唯一)}字段" + excelTable[0].Rows[j][2].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
@@ -1945,7 +1898,7 @@
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{用户编码(唯一)}";
                        erro.ErrorCont = "用户表:{用户编码(唯一)}字段" + excelTable[1].Rows[k][2].ToString().Trim() + "已存在";
                        erro.ErrorCont = "用户表:{用户编码(唯一)}字段" + excelTable[1].Rows[k][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
@@ -1959,10 +1912,42 @@
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{组织编码}";
                        erro.ErrorCont = "用户表:{组织编码}字段" + excelTable[1].Rows[k][2].ToString().Trim() + "不存在";
                        erro.ErrorCont = "用户表:{组织编码}字段" + excelTable[1].Rows[k][7].ToString().Trim() + "不存在";
                        list.Add(erro);
                    }
                }
                if (excelTable[1].Rows[k][9].ToString().Trim() != null && excelTable[1].Rows[k][9].ToString().Trim() != "")
                {
                    sql = @"select torg_code  from TGroup where group_code=@group_code";
                    dynamicParams.Add("@group_code", excelTable[1].Rows[k][9].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt != null && dt.Rows.Count>0)
                    {
                        if (dt.Rows[0]["torg_code"].ToString()!= excelTable[1].Rows[k][7].ToString().Trim())
                        {
                            ExcelErro erro = new ExcelErro();
                            erro.RoeNumber = "/";
                            erro.ErrorField = "{用户组编码}";
                            erro.ErrorCont = "用户表:{用户组编码}字段" + excelTable[1].Rows[k][9].ToString().Trim() + " ä¸æ˜¯ç»„织编码:" + excelTable[1].Rows[k][7].ToString().Trim() + "下的用户组";
                            list.Add(erro);
                        }                    }
                }
            }
            //判断子表组织编码不存在于主表组织编码中的数据
            var dt2 = from r in excelTable[1].AsEnumerable()
                      where !(
                          from rr in excelTable[0].AsEnumerable()
                          select rr.Field<string>("组织编码")
                      ).Contains(r.Field<string>("组织编码"))
                      select r;
            List<DataRow> listRow2 = dt2.ToList();
            if (listRow2.Count > 0)
            {
                ExcelErro erro = new ExcelErro();
                erro.RoeNumber = "/";
                erro.ErrorField = "{组织编码}";
                erro.ErrorCont = "用户表:{组织编码}字段中有值在班组表:{组织编码}中不存在";
                list.Add(erro);
            }
            //判断子表外键不存在于主表主键中的数据
            var dt3 = from r in excelTable[1].AsEnumerable()
@@ -2017,17 +2002,31 @@
            //主表
            for (int j = 0; j < excelTable[0].Rows.Count; j++)
            {
                if (excelTable[0].Rows[j][1].ToString().Trim() != null && excelTable[0].Rows[j][1].ToString().Trim() != "")
                if (excelTable[1].Rows[j][1].ToString().Trim() != null && excelTable[1].Rows[j][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TOrganization where org_code=@org_code";
                    dynamicParams.Add("@org_code", excelTable[1].Rows[j][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt == null || dt.Rows.Count <= 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{组织编码}";
                        erro.ErrorCont = "角色类型表:{组织编码}字段" + excelTable[1].Rows[j][1].ToString().Trim() + "不存在";
                        list.Add(erro);
                    }
                }
                if (excelTable[0].Rows[j][2].ToString().Trim() != null && excelTable[0].Rows[j][2].ToString().Trim() != "")
                {
                    sql = @"select *  from TRoleType where roletype_code=@roletype_code";
                    dynamicParams.Add("@roletype_code", excelTable[0].Rows[j][1].ToString().Trim());
                    dynamicParams.Add("@roletype_code", excelTable[0].Rows[j][2].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{角色类型编码(唯一)}";
                        erro.ErrorCont = "班组表:{角色类型编码(唯一)}字段" + excelTable[0].Rows[j][1].ToString().Trim() + "已存在";
                        erro.ErrorCont = "班组表:{角色类型编码(唯一)}字段" + excelTable[0].Rows[j][2].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
@@ -2035,10 +2034,10 @@
            //子表
            for (int k = 0; k < excelTable[1].Rows.Count; k++)
            {
                if (excelTable[1].Rows[k][1].ToString().Trim() != null && excelTable[1].Rows[k][1].ToString().Trim() != "")
                if (excelTable[1].Rows[k][2].ToString().Trim() != null && excelTable[1].Rows[k][2].ToString().Trim() != "")
                {
                    sql = @"select *  from TRole where role_code=@role_code";
                    dynamicParams.Add("@role_code", excelTable[1].Rows[k][1].ToString().Trim());
                    dynamicParams.Add("@role_code", excelTable[1].Rows[k][2].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
@@ -2049,6 +2048,53 @@
                        list.Add(erro);
                    }
                }
                if (excelTable[1].Rows[k][1].ToString().Trim() != null && excelTable[1].Rows[k][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TOrganization where org_code=@org_code";
                    dynamicParams.Add("@org_code", excelTable[1].Rows[k][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt == null || dt.Rows.Count <= 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{组织编码}";
                        erro.ErrorCont = "角色表:{组织编码}字段" + excelTable[1].Rows[k][1].ToString().Trim() + "不存在";
                        list.Add(erro);
                    }
                }
                if (excelTable[1].Rows[k][4].ToString().Trim() != null && excelTable[1].Rows[k][4].ToString().Trim() != "")
                {
                    sql = @"select torg_code  from TRoleType where roletype_code=@roletype_code";
                    dynamicParams.Add("@roletype_code", excelTable[1].Rows[k][4].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        if (dt.Rows[0]["torg_code"].ToString() != excelTable[1].Rows[k][1].ToString().Trim())
                        {
                            ExcelErro erro = new ExcelErro();
                            erro.RoeNumber = "/";
                            erro.ErrorField = "{角色类型编码}";
                            erro.ErrorCont = "角色表:{角色类型编码}字段" + excelTable[1].Rows[k][4].ToString().Trim() + " ä¸æ˜¯ç»„织编码:" + excelTable[1].Rows[k][1].ToString().Trim() + "下的角色组";
                            list.Add(erro);
                        }
                    }
                }
            }
            //判断子表组织编码不存在于主表组织编码中的数据
            var dt2 = from r in excelTable[1].AsEnumerable()
                      where !(
                          from rr in excelTable[0].AsEnumerable()
                          select rr.Field<string>("组织编码")
                      ).Contains(r.Field<string>("组织编码"))
                      select r;
            List<DataRow> listRow2 = dt2.ToList();
            if (listRow2.Count > 0)
            {
                ExcelErro erro = new ExcelErro();
                erro.RoeNumber = "/";
                erro.ErrorField = "{组织编码}";
                erro.ErrorCont = "角色表:{组织编码}字段中有值在角色类型表:{组织编码}中不存在";
                list.Add(erro);
            }
            //判断子表外键不存在于主表主键中的数据
            var dt3 = from r in excelTable[1].AsEnumerable()
@@ -2277,103 +2323,41 @@
            var dynamicParams = new DynamicParameters();
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            List<DataTable> excelTable = new List<DataTable>();
            list = ImportExcel.ExcelToThreeTableListErro(FileCode);    //验证Excel数据必填字段是否为空、唯一字段是否重复
            excelTable = ImportExcel.ExcelToThreeTableList(FileCode);  //获取Excel数据
            //设备类型表,判断设备类型是否存在
            for (int i = 0; i < excelTable[0].Rows.Count; i++)
            {
                if (excelTable[0].Rows[i][1].ToString().Trim() != null && excelTable[0].Rows[i][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TEqpType where code=@code";
                    dynamicParams.Add("@code", excelTable[0].Rows[i][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{设备类型编号(唯一)}";
                        erro.ErrorCont = "设备类型表:{设备类型编号(唯一)}字段" + excelTable[0].Rows[i][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
            }
            //设备组表,判断设备组是否存在
            for (int j = 0; j < excelTable[1].Rows.Count; j++)
            {
                if (excelTable[1].Rows[j][1].ToString().Trim() != null && excelTable[1].Rows[j][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TEqpGroup where code=@code";
                    dynamicParams.Add("@code", excelTable[1].Rows[j][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{设备组编号(唯一)}";
                        erro.ErrorCont = "设备组表:{设备组编号(唯一)}字段" + excelTable[1].Rows[j][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
            }
            //判断子表外键不存在于主表主键中的数据
            var dt3 = from r in excelTable[1].AsEnumerable()
                      where !(
                          from rr in excelTable[0].AsEnumerable()
                          select rr.Field<string>("设备类型编号(唯一)")
                      ).Contains(r.Field<string>("设备类型编号"))
                      select r;
            List<DataRow> listRow = dt3.ToList();
            if (listRow.Count > 0)
            {
                ExcelErro erro = new ExcelErro();
                erro.RoeNumber = "/";
                erro.ErrorField = "{设备类型编号}";
                erro.ErrorCont = "设备组信息:{设备类型编号}字段中有值在设备类型信息:{设备类型编号(唯一)}中不存在";
                list.Add(erro);
            }
            DataTable excelTable = new DataTable();
            list = ImportExcel.ExcelToTableErro(FileCode);    //验证Excel数据必填字段是否为空、唯一字段是否重复
            excelTable = ImportExcel.ExcelToTable(FileCode);  //获取Excel数据
            //设备清单表
            for (int k = 0; k < excelTable[2].Rows.Count; k++)
            for (int k = 0; k < excelTable.Rows.Count; k++)
            {
                if (excelTable[2].Rows[k][1].ToString().Trim() != null && excelTable[2].Rows[k][1].ToString().Trim() != "")
                if (excelTable.Rows[k][1].ToString().Trim() != null && excelTable.Rows[k][1].ToString().Trim() != "")
                {
                    sql = @"select *  from TEqpInfo where code=@code";
                    dynamicParams.Add("@code", excelTable[2].Rows[k][1].ToString().Trim());
                    dynamicParams.Add("@code", excelTable.Rows[k][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{设备编号(唯一)}";
                        erro.ErrorCont = "设备表:{设备编号(唯一)}字段" + excelTable[2].Rows[k][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                    //判断设备组是否对应正确的设备类型
                    var yourGetData = excelTable[1].AsEnumerable().Where<DataRow>(a => a["设备类型编号"].ToString() == excelTable[2].Rows[k][3].ToString().Trim()&& a["设备组编号(唯一)"].ToString() == excelTable[2].Rows[k][4].ToString().Trim());
                    if (yourGetData.Count() <= 0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{设备类型编号}/{设备组编号}";
                        erro.ErrorCont = "设备表:{设备编号(唯一)}字段" + excelTable[2].Rows[k][1].ToString().Trim() + "对应{设备类型编号}:"+ excelTable[2].Rows[k][4].ToString().Trim() + "/{设备组编号}:"+ excelTable[2].Rows[k][4].ToString().Trim() + "与设备组清单中设置对不上";
                        erro.ErrorCont = "设备表:{设备编号(唯一)}字段" + excelTable.Rows[k][1].ToString().Trim() + "已存在";
                        list.Add(erro);
                    }
                }
            }
            //车间判断
            for (int m = 0; m < excelTable[2].Rows.Count; m++)
            for (int m = 0; m < excelTable.Rows.Count; m++)
            {
                if (excelTable[2].Rows[m][6].ToString().Trim() != null && excelTable[2].Rows[m][6].ToString().Trim() != "")
                if (excelTable.Rows[m][4].ToString().Trim() != null && excelTable.Rows[m][4].ToString().Trim() != "")
                {
                    sql = @"select *  from TOrganization where org_name=@code and description='W'";
                    dynamicParams.Add("@code", excelTable[2].Rows[m][6].ToString().Trim());
                    sql = @"select *  from TOrganization where org_code=@code and description='W'";
                    dynamicParams.Add("@code", excelTable.Rows[m][4].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count<=0)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = "/";
                        erro.ErrorField = "{生产车间}";
                        erro.ErrorCont = "设备表:{生产车间}字段" + excelTable[2].Rows[m][6].ToString().Trim() + "不存在";
                        erro.ErrorField = "{车间编码}";
                        erro.ErrorCont = "设备表:{车间编码}字段" + excelTable.Rows[m][4].ToString().Trim() + "不存在";
                        list.Add(erro);
                    }
                }
@@ -2393,7 +2377,7 @@
            {
                StuCode = "200";
                message = "数据验证成功";
                count = excelTable[0].Rows.Count + excelTable[1].Rows.Count+excelTable[2].Rows.Count;
                count = excelTable.Rows.Count;
            }
            return list;
        }
@@ -3254,20 +3238,31 @@
                //导入班组
                for (int k = 0; k < excelTable[0].Rows.Count; k++)
                {
                    sql = @"insert into TGroup(group_code,group_name,description,lm_user,lm_date)
                            values(@group_code,@group_name,@description,@Operator,@CreateDate)";
                    sql = @"select *   from TGroup where group_code=@group_code";
                    dynamicParams.Add("@group_code", excelTable[0].Rows[k][2].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        continue;
                    }
                    else
                    {
                        sql = @"insert into TGroup(group_code,group_name,description,lm_user,lm_date,torg_code)
                            values(@group_code,@group_name,@description,@Operator,@CreateDate,@torg_code)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            group_code = excelTable[0].Rows[k][1].ToString().Trim(),
                            group_name = excelTable[0].Rows[k][2].ToString().Trim(),
                            description = excelTable[0].Rows[k][3].ToString().Trim(),
                                group_code = excelTable[0].Rows[k][2].ToString().Trim(),
                                group_name = excelTable[0].Rows[k][3].ToString().Trim(),
                                description = excelTable[0].Rows[k][4].ToString().Trim(),
                            CreateDate = DateTime.Now.ToString(),
                            Operator = User
                                Operator = User,
                                torg_code= excelTable[0].Rows[k][1].ToString().Trim()
                        }
                    });
                    }
                }
                //导入用户
                for (int i = 0; i < excelTable[1].Rows.Count; i++)
@@ -3292,7 +3287,13 @@
                        default:
                            break;
                    }
                    sql = @"select *   from TUser where usercode=@usercode";
                    dynamicParams.Add("@usercode", excelTable[1].Rows[i][1].ToString().Trim());
                    dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        continue;
                    }
                    sql = @"insert into TUser(usercode,username,password,enable,mobile,lm_date,email,lm_user,stu_torgcode,wagetype,usergroup_code) 
                            values(@UserCode,@UserName,@password,@Enable,@Mobile,@CreateDate,@Email,@Operator,@StuOrg,@wagetype,@usergroup_code)";
                    list.Add(new
@@ -3353,34 +3354,36 @@
                //导入角色类型
                for (int k = 0; k < excelTable[0].Rows.Count; k++)
                {
                    sql = @"insert into TRoleType(roletype_code,roletype_name)
                            values(@roletype_code,@roletype_name)";
                    sql = @"insert into TRoleType(roletype_code,roletype_name,torg_code)
                            values(@roletype_code,@roletype_name,@torg_code)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            roletype_code = excelTable[0].Rows[k][1].ToString().Trim(),
                            roletype_name = excelTable[0].Rows[k][2].ToString().Trim()
                            roletype_code = excelTable[0].Rows[k][2].ToString().Trim(),
                            roletype_name = excelTable[0].Rows[k][3].ToString().Trim(),
                            torg_code = excelTable[0].Rows[k][1].ToString().Trim()
                        }
                    });
                }
                //导入角色
                for (int i = 0; i < excelTable[1].Rows.Count; i++)
                {
                    sql = @"insert into TRole(role_code,role_name,roletype_code,description,lm_user,lm_date)
                            values(@role_code,@role_name,@roletype_code,@description,@Operator,@CreateDate)";
                    sql = @"insert into TRole(role_code,role_name,roletype_code,description,lm_user,lm_date,torg_code)
                            values(@role_code,@role_name,@roletype_code,@description,@Operator,@CreateDate,@torg_code)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            role_code = excelTable[1].Rows[i][1].ToString().Trim(),
                            role_name = excelTable[1].Rows[i][2].ToString().Trim(),
                            roletype_code = excelTable[1].Rows[i][3].ToString().Trim(),
                            description = excelTable[1].Rows[i][4].ToString().Trim(),
                            role_code = excelTable[1].Rows[i][2].ToString().Trim(),
                            role_name = excelTable[1].Rows[i][3].ToString().Trim(),
                            roletype_code = excelTable[1].Rows[i][4].ToString().Trim(),
                            description = excelTable[1].Rows[i][5].ToString().Trim(),
                            Operator = User,
                            CreateDate = DateTime.Now.ToString()
                            CreateDate = DateTime.Now.ToString(),
                            torg_code = excelTable[1].Rows[i][1].ToString().Trim()
                        }
                    });
                }
@@ -3612,77 +3615,37 @@
            try
            {
                list.Clear();
                List<DataTable> excelTable = new List<DataTable>();
                excelTable = ImportExcel.ExcelToThreeTableList(FileCode);
                //写入设备类型
                for (int i = 0; i < excelTable[0].Rows.Count; i++)
                {
                    sql = @"insert into TEqpType(code,name,lm_user,lm_date,remark)
                            values(@code,@name,@lm_user,@lm_date,@remark)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            code = excelTable[0].Rows[i][1].ToString().Trim(),
                            name = excelTable[0].Rows[i][2].ToString().Trim(),
                            lm_user = User,
                            lm_date = DateTime.Now.ToString(),
                            remark= excelTable[0].Rows[i][3].ToString().Trim()
                        }
                    });
                }
                //写入设备组
                for (int j = 0; j < excelTable[1].Rows.Count; j++)
                {
                    sql = @"insert into TEqpGroup(code,name,lm_user,lm_date,remark,eqptype_code)
                            values(@code,@name,@lm_user,@lm_date,@remark,@eqptype_code)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            code = excelTable[1].Rows[j][1].ToString().Trim(),
                            name = excelTable[1].Rows[j][2].ToString().Trim(),
                            lm_user = User,
                            lm_date = DateTime.Now.ToString(),
                            remark = excelTable[1].Rows[j][4].ToString().Trim(),
                            eqptype_code= excelTable[1].Rows[j][3].ToString().Trim()
                        }
                    });
                }
                DataTable excelTable = new DataTable();
                excelTable = ImportExcel.ExcelToTable(FileCode);
                //导入设备清单
                for (int k = 0; k < excelTable[2].Rows.Count; k++)
                for (int k = 0; k < excelTable.Rows.Count; k++)
                {
                    //获取车间编码
                    string sql0 = @"select org_code,org_name from TOrganization where org_name=@wkshp and description='W' and is_delete<>'1'";
                    dynamicParams.Add("@wkshp", excelTable[2].Rows[k][6].ToString());
                    var data = DapperHelper.selectdata(sql0, dynamicParams);
                    sql = @"insert into TEqpInfo(code,name,eqptype_code,eqpgroup_code,wksp_code,input_date,operation_ration,enable,opc_uom,lm_user,lm_date)
                            values(@devicecode,@devicename,@devicetype,@devicegroup,@workshop,@importdate,@ratio,@status,@uom,@lm_user,@lm_date)";
                    sql = @"select *   from TEqpInfo where code=@eqp_code";
                    dynamicParams.Add("@eqp_code", excelTable.Rows[k][1].ToString().Trim());
                    DataTable dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0)
                    {
                        continue;
                    }
                    sql = @"insert into TEqpInfo(code,name,wksp_code,input_date,operation_ration,enable,opc_uom,lm_user,lm_date)
                            values(@devicecode,@devicename,@workshop,@importdate,@ratio,@status,@uom,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            devicecode = excelTable[2].Rows[k][1].ToString().Trim(),
                            devicename = excelTable[2].Rows[k][2].ToString().Trim(),
                            devicetype = excelTable[2].Rows[k][3].ToString().Trim(),
                            devicegroup = excelTable[2].Rows[k][4].ToString().Trim(),
                            workshop = data.Rows[0]["org_code"].ToString().Trim(),
                            importdate = excelTable[2].Rows[k][5].ToString().Trim(),
                            ratio = excelTable[2].Rows[k][8].ToString().Trim(),
                            status = excelTable[2].Rows[k][7].ToString().Trim(),
                            devicecode = excelTable.Rows[k][1].ToString().Trim(),
                            devicename = excelTable.Rows[k][2].ToString().Trim(),
                            workshop = excelTable.Rows[k][4].ToString().Trim(),
                            importdate = excelTable.Rows[k][3].ToString().Trim(),
                            ratio = excelTable.Rows[k][6].ToString().Trim(),
                            status = excelTable.Rows[k][5].ToString().Trim(),
                            uom = "台",
                            lm_user = User,
                            lm_date = DateTime.Now.ToString()
                        }
                    });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
VueWebApi/Tools/ScanStartReport.cs
@@ -17,10 +17,11 @@
        /// <summary>
        /// æ‰«ç ä¿¡æ¯ä¸ºå·¥å•+工序条码
        /// </summary>
        /// <param name="stu_torgcode">所属组织编码</param>
        /// <param name="ordercode">工单编号</param>
        /// <param name="stepcode">工序编码</param>
        /// <returns></returns>
        public static ToMessage ZZEncodingSeach(string ordercode, string stepcode)
        public static ToMessage ZZEncodingSeach(string stu_torgcode, string ordercode, string stepcode)
        {
            var sql = "";
            string flwtype = ""; //工序属性
@@ -32,6 +33,33 @@
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前工单是否关闭
                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'";
                dynamicParams.Add("@ordercode", ordercode);
                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                var da0 = DapperHelper.selectdata(sql, dynamicParams);
                if (da0.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前工单已关闭,不允许开报工操作!";
                    mes.data = null;
                    return mes;
                }
                //0.判断当前工单所属车间是否为当前登录人员车间
                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode";
                dynamicParams.Add("@ordercode", ordercode);
                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                var da1 = DapperHelper.selectdata(sql, dynamicParams);
                if (da1.Rows.Count<=0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "不是本车间生产任务,不允许操作!";
                    mes.data = null;
                    return mes;
                }
              
                //1.根据工单+工序查找当前工序是否首道工序
                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name  
@@ -215,6 +243,14 @@
                                                }
                                                else
                                                {
                                                    if (sgood_qty == null || sgood_qty == 0)
                                                    {
                                                        mes.code = "300";
                                                        mes.count = 0;
                                                        mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼äº§å‡ºä¸º0,本道不允许开报工!";
                                                        mes.data = null;
                                                        return mes;
                                                    }
                                                    rt.eqpcode = data1.Rows[0]["code"].ToString();                              //开工设备编码
                                                    rt.eqpname = data1.Rows[0]["name"].ToString();                              //开工设备名称
                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
@@ -261,6 +297,14 @@
                                                }
                                                else
                                                {
                                                    if (sqty == null || sqty == 0)
                                                    {
                                                        mes.code = "300";
                                                        mes.count = 0;
                                                        mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼æ”¶æ–™ä¸º0,本道不允许开报工!";
                                                        mes.data = null;
                                                        return mes;
                                                    }
                                                    rt.eqpcode = data1.Rows[0]["code"].ToString();                              //开工设备编码
                                                    rt.eqpname = data1.Rows[0]["name"].ToString();                              //开工设备名称
                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
@@ -294,9 +338,16 @@
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有报工
                                            {
                                                decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //本道报工总数量
                                                decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //上道报工总数量
                                                decimal sybqty = sgood_qty;                                      //本道剩余可报数量=上道报工数量
                                                if (sgood_qty == null || sgood_qty == 0)
                                                {
                                                    mes.code = "300";
                                                    mes.count = 0;
                                                    mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼äº§å‡ºä¸º0,本道不允许开报工!";
                                                    mes.data = null;
                                                    return mes;
                                                }
                                                rt.eqpcode = data1.Rows[0]["code"].ToString();                              //开工设备编码
                                                rt.eqpname = data1.Rows[0]["name"].ToString();                              //开工设备名称
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
@@ -328,7 +379,14 @@
                                            {
                                                decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//上道收料数量
                                                decimal sybqty = sqty;                   //本道剩余可收数量=上道收料数量
                                                if (sqty == null || sqty == 0)
                                                {
                                                    mes.code = "300";
                                                    mes.count = 0;
                                                    mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼æ”¶æ–™ä¸º0,本道不允许开报工!";
                                                    mes.data = null;
                                                    return mes;
                                                }
                                                rt.eqpcode = data1.Rows[0]["code"].ToString();                              //开工设备编码
                                                rt.eqpname = data1.Rows[0]["name"].ToString();                              //开工设备名称
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
@@ -362,13 +420,20 @@
                                        var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                        if (data2.Rows.Count > 0) //上到工序有报工
                                        {
                                            string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//报工数量
                                            string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// ä¸è‰¯æ•°é‡
                                            string bad_qty = data2.Rows[0]["BAD_QTY"].ToString();// æŠ¥åºŸæ•°é‡
                                            decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();//报工数量
                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// ä¸è‰¯æ•°é‡
                                            decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();// æŠ¥åºŸæ•°é‡
                                            if (good_qty == null || good_qty == 0)
                                            {
                                                mes.code = "300";
                                                mes.count = 0;
                                                mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼äº§å‡ºä¸º0,本道不允许开报工!";
                                                mes.data = null;
                                                return mes;
                                            }
                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                            rt.startqty = decimal.Parse(good_qty);                               //开工数量=(上一道的报工数量)
                                            rt.noreportqty = decimal.Parse(good_qty);                            //未报数量=(上一道的报工数量)
                                            rt.startqty = good_qty;                               //开工数量=(上一道的报工总数量)
                                            rt.noreportqty = good_qty;                            //未报数量=(上一道的报工总数量)
                                            rt.reportqty = 0;                                                    //已报数量
                                            mes.code = "200";
                                            mes.count = 0;
@@ -396,7 +461,14 @@
                                            decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//收料数量
                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// ä¸è‰¯æ•°é‡
                                            decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();// æŠ¥åºŸæ•°é‡
                                            if (sqty == null || sqty == 0)
                                            {
                                                mes.code = "300";
                                                mes.count = 0;
                                                mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼æ”¶æ–™ä¸º0,本道不允许开报工!";
                                                mes.data = null;
                                                return mes;
                                            }
                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                            rt.startqty = sqty;                                                  //开工数量=(上一道的收料数量)
                                            rt.noreportqty = sqty;                                               //未报数量=(上一道的收料数量)
@@ -455,11 +527,12 @@
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥:外协工序任务开报工判断:工单号+工序
        /// </summary>
        /// <param name="OperType">操作类型</param>
        /// <param name="stu_torgcode">所属组织编码</param>
        /// <param name="SelectType">操作类型</param>
        /// <param name="ordercode">工单编号</param>
        /// <param name="stepcode">工序编码</param>
        /// <returns></returns>
        public static ToMessage WXEncodingSeach(string SelectType, string ordercode, string stepcode)
        public static ToMessage WXEncodingSeach(string stu_torgcode, string SelectType, string ordercode, string stepcode)
        {
            var sql = "";
            string flwtype = ""; //工序属性
@@ -471,6 +544,34 @@
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前工单是否关闭
                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshop_code=@stu_torgcode and status='CLOSED'";
                dynamicParams.Add("@ordercode", ordercode);
                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                var da0 = DapperHelper.selectdata(sql, dynamicParams);
                if (da0.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前工单已关闭,不允许开报工操作!";
                    mes.data = null;
                    return mes;
                }
                //0.判断当前工单所属车间是否为当前登录人员车间
                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshop_code=@stu_torgcode";
                dynamicParams.Add("@ordercode", ordercode);
                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                var da1 = DapperHelper.selectdata(sql, dynamicParams);
                if (da1.Rows.Count <= 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "不是本车间生产任务,不允许操作!";
                    mes.data = null;
                    return mes;
                }
                //1.根据工单+工序查找当前工序是否首道工序
                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name   
                        from TK_Wrk_Step A
@@ -631,6 +732,14 @@
                                                    }
                                                    else
                                                    {
                                                        if (sgood_qty == null || sgood_qty == 0)
                                                        {
                                                            mes.code = "300";
                                                            mes.count = 0;
                                                            mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼äº§å‡ºä¸º0,本道不允许发料!";
                                                            mes.data = null;
                                                            return mes;
                                                        }
                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                        rt.noreportqty = sybqty;                                             //未发数量=剩余可发数量
                                                        rt.reportqty = sqty + ng_qty+bad_qty;                                //已发数量= æœ¬é“发料数量+本道不良数量+本道报废数量                                       
@@ -676,6 +785,14 @@
                                                    }
                                                    else
                                                    {
                                                        if (ssqty == null || ssqty == 0)
                                                        {
                                                            mes.code = "300";
                                                            mes.count = 0;
                                                            mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼æ”¶æ–™ä¸º0,本道不允许发料!";
                                                            mes.data = null;
                                                            return mes;
                                                        }
                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                        rt.noreportqty = sybqty;                                             //未发数量=剩余可发数量
                                                        rt.reportqty = sqty + ng_qty+bad_qty;                                //已发数量= æœ¬é“发料数量+本道不良数量+本道报废数量                                       
@@ -691,7 +808,7 @@
                                                {
                                                    mes.code = "300";
                                                    mes.count = 0;
                                                    mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " æœªæŠ¥å·¥,本道不允许发料!";
                                                    mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " æœªå‘æ–™,本道不允许发料!";
                                                    mes.data = null;
                                                    return mes;
                                                }
@@ -711,7 +828,14 @@
                                                    decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //本道报工总数量
                                                    decimal sybqty = sgood_qty;//本道剩余可发数量=上道报工总数量
                                                    if (sgood_qty == null || sgood_qty == 0)
                                                    {
                                                        mes.code = "300";
                                                        mes.count = 0;
                                                        mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼äº§å‡ºä¸º0,本道不允许发料!";
                                                        mes.data = null;
                                                        return mes;
                                                    }
                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                    rt.noreportqty = sybqty;                                             //未发数量=剩余可发数量
                                                    rt.reportqty = 0;                                                    //已发数量                                       
@@ -754,6 +878,14 @@
                                                    }
                                                    else
                                                    {
                                                        if (ssqty == null || ssqty == 0)
                                                        {
                                                            mes.code = "300";
                                                            mes.count = 0;
                                                            mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " çš„上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " åˆæ ¼æ”¶æ–™ä¸º0,本道不允许发料!";
                                                            mes.data = null;
                                                            return mes;
                                                        }
                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                        rt.noreportqty = sybqty;                                             //未发数量=剩余可发数量
                                                        rt.reportqty = 0;                                                    //已发数量                                     
VueWebApi/bin/VueWebApi.pdb
Binary files differ
VueWebApi/bin/VueWebApi.xml
@@ -506,19 +506,23 @@
            </summary>
            <param name="documentPath">The physical path to XML document.</param>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionKanban(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionKanban(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            App生产看板
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="stu_torgtypecode">组织类型</param>
            <param name="usercode">登录人员</param>
            <param name="Ratetime">时间</param>
            <param name="defecttype">缺陷统计类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            App生产进度看板单据信息
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="stu_torgtypecode">组织类型</param>
            <param name="ordertype">单据类型(SO:销售订单、MO:生产订单、PO:生产工单)</param>
            <param name="partcode">产品信息(可多个)</param>
            <param name="Ratetime">单据日期范围</param>
@@ -533,10 +537,11 @@
            <param name="Ratetime">时间</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStart(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStart(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
            </summary>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
            <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
            <param name="orderstepqrcode">扫描二维码信息</param>
@@ -549,17 +554,20 @@
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepReportSelectUserGroup(System.String)">
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepReportSelectUserGroup(System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæŠ¥å·¥æ—¶èŽ·å–ç”Ÿäº§ç­ç»„ä¸‹æ‹‰æ¡†
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="stu_torgtypecode">组织类型</param>
            <param name="wkshopcode">车间编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderGroupSelectUser(System.String)">
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderGroupSelectUser(System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="usergroupcode">班组编码</param>
            <returns></returns>
        </member>
@@ -742,10 +750,11 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String,System.String)">
            <summary>
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
@@ -1106,10 +1115,11 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç»´ä¿®æ˜Žç»†æŠ¥è¡¨ 
            </summary>
            <param name="wkshopcode">车间编号</param>
            <param name="wocode">工单编号</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
@@ -1125,10 +1135,11 @@
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç»´ä¿®æ˜Žç»†æŠ¥è¡¨å¯¼å‡º 
            </summary>
            <param name="wkshopcode">车间编号</param>
            <param name="wocode">工单编号</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
@@ -1448,11 +1459,12 @@
            <param name="obj">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.DeleteOrganization(System.Int32)">
        <member name="M:VueWebApi.Controllers.BasicSettingController.DeleteOrganization(System.Int32,System.String)">
            <summary>
            ç»„织架构删除
            </summary>
            <param name="orgid">组织id</param>
            <param name="orgcode">组织编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.UserSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -2408,7 +2420,7 @@
            <param name="username">用户名称</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppOut(System.Int32,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppOut(System.Int32,System.String,System.String,System.String,System.String)">
            <summary>
            APP登出
            </summary>
@@ -2416,9 +2428,10 @@
            <param name="usercode">用户编码</param>
            <param name="username">用户名</param>
            <param name="usertype">操作端PC/APP</param>
            <param name="stu_torgcode">所属组织编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppAnDonMessage(System.String,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppAnDonMessage(System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            App登录查询安灯呼叫信息
            </summary>
@@ -2426,6 +2439,8 @@
            <param name="usercode">用户编码</param>
            <param name="username">用户名称</param>
            <param name="usertype">操作端PC/APP</param>
            <param name="stu_torgcode">所属编码组织</param>
            <param name="stu_torgtypecode">所属组织类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.MaterialManagerController.WareHouseDefSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -2690,13 +2705,14 @@
            <param name="orderstepqrcode">扫描的二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepStart(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepStart(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
            </summary>
            <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
            <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <param name="stu_torgcode">所属组织编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepStartSelectEqp(System.String)">
@@ -2777,10 +2793,11 @@
            <param name="json">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String,System.String)">
            <summary>
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
@@ -4470,19 +4487,21 @@
            <param name="listId"></param>  
            <param name="func"></param>  
        </member>
        <member name="M:VueWebApi.Tools.ScanStartReport.ZZEncodingSeach(System.String,System.String)">
        <member name="M:VueWebApi.Tools.ScanStartReport.ZZEncodingSeach(System.String,System.String,System.String)">
            <summary>
            æ‰«ç ä¿¡æ¯ä¸ºå·¥å•+工序条码
            </summary>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="ordercode">工单编号</param>
            <param name="stepcode">工序编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.ScanStartReport.WXEncodingSeach(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Tools.ScanStartReport.WXEncodingSeach(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥:外协工序任务开报工判断:工单号+工序
            </summary>
            <param name="OperType">操作类型</param>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="SelectType">操作类型</param>
            <param name="ordercode">工单编号</param>
            <param name="stepcode">工序编码</param>
            <returns></returns>
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/Excel/Óû§Çåµ¥.xls
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/Excel/½ÚÅŤ¼Û.xls
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/Excel/½ÇÉ«Çåµ¥.xls
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/Excel/É豸Çåµ¥.xls
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -506,19 +506,23 @@
            </summary>
            <param name="documentPath">The physical path to XML document.</param>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionKanban(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionKanban(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            App生产看板
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="stu_torgtypecode">组织类型</param>
            <param name="usercode">登录人员</param>
            <param name="Ratetime">时间</param>
            <param name="defecttype">缺陷统计类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            App生产进度看板单据信息
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="stu_torgtypecode">组织类型</param>
            <param name="ordertype">单据类型(SO:销售订单、MO:生产订单、PO:生产工单)</param>
            <param name="partcode">产品信息(可多个)</param>
            <param name="Ratetime">单据日期范围</param>
@@ -533,10 +537,11 @@
            <param name="Ratetime">时间</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStart(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStart(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
            </summary>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
            <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
            <param name="orderstepqrcode">扫描二维码信息</param>
@@ -549,17 +554,20 @@
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepReportSelectUserGroup(System.String)">
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepReportSelectUserGroup(System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæŠ¥å·¥æ—¶èŽ·å–ç”Ÿäº§ç­ç»„ä¸‹æ‹‰æ¡†
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="stu_torgtypecode">组织类型</param>
            <param name="wkshopcode">车间编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderGroupSelectUser(System.String)">
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderGroupSelectUser(System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="usergroupcode">班组编码</param>
            <returns></returns>
        </member>
@@ -742,10 +750,11 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String)">
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String,System.String)">
            <summary>
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="stu_torgcode">组织编码</param>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
@@ -1106,10 +1115,11 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç»´ä¿®æ˜Žç»†æŠ¥è¡¨ 
            </summary>
            <param name="wkshopcode">车间编号</param>
            <param name="wocode">工单编号</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
@@ -1125,10 +1135,11 @@
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ReportManagerController.MaintenanceDetailsReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç»´ä¿®æ˜Žç»†æŠ¥è¡¨å¯¼å‡º 
            </summary>
            <param name="wkshopcode">车间编号</param>
            <param name="wocode">工单编号</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
@@ -1448,11 +1459,12 @@
            <param name="obj">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.DeleteOrganization(System.Int32)">
        <member name="M:VueWebApi.Controllers.BasicSettingController.DeleteOrganization(System.Int32,System.String)">
            <summary>
            ç»„织架构删除
            </summary>
            <param name="orgid">组织id</param>
            <param name="orgcode">组织编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.UserSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -2408,7 +2420,7 @@
            <param name="username">用户名称</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppOut(System.Int32,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppOut(System.Int32,System.String,System.String,System.String,System.String)">
            <summary>
            APP登出
            </summary>
@@ -2416,9 +2428,10 @@
            <param name="usercode">用户编码</param>
            <param name="username">用户名</param>
            <param name="usertype">操作端PC/APP</param>
            <param name="stu_torgcode">所属组织编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppAnDonMessage(System.String,System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.LoginController.LoginAppAnDonMessage(System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            App登录查询安灯呼叫信息
            </summary>
@@ -2426,6 +2439,8 @@
            <param name="usercode">用户编码</param>
            <param name="username">用户名称</param>
            <param name="usertype">操作端PC/APP</param>
            <param name="stu_torgcode">所属编码组织</param>
            <param name="stu_torgtypecode">所属组织类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.MaterialManagerController.WareHouseDefSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -2690,13 +2705,14 @@
            <param name="orderstepqrcode">扫描的二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepStart(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepStart(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
            </summary>
            <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
            <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <param name="stu_torgcode">所属组织编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepStartSelectEqp(System.String)">
@@ -2777,10 +2793,11 @@
            <param name="json">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String)">
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String,System.String)">
            <summary>
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
@@ -4470,19 +4487,21 @@
            <param name="listId"></param>  
            <param name="func"></param>  
        </member>
        <member name="M:VueWebApi.Tools.ScanStartReport.ZZEncodingSeach(System.String,System.String)">
        <member name="M:VueWebApi.Tools.ScanStartReport.ZZEncodingSeach(System.String,System.String,System.String)">
            <summary>
            æ‰«ç ä¿¡æ¯ä¸ºå·¥å•+工序条码
            </summary>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="ordercode">工单编号</param>
            <param name="stepcode">工序编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.ScanStartReport.WXEncodingSeach(System.String,System.String,System.String)">
        <member name="M:VueWebApi.Tools.ScanStartReport.WXEncodingSeach(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥:外协工序任务开报工判断:工单号+工序
            </summary>
            <param name="OperType">操作类型</param>
            <param name="stu_torgcode">所属组织编码</param>
            <param name="SelectType">操作类型</param>
            <param name="ordercode">工单编号</param>
            <param name="stepcode">工序编码</param>
            <returns></returns>
VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ