Skip to content

本文以演示环境如下:

操作系统系统类型作者
kylinOSx86_64张世平

安装准备

①前期准备

1.2个映射到外网的端口,及对应的二级域名,2个端口使用说明,一个是移动端Nginx监听端口,一个是移动端API端口,示例:http://sh.goodwaysoft.com:8257
2.已部署好mis系统,且可以正常进入首页;
3.准备要部署的移动端代码,示例:PMwise6-202403;
Advert:移动端首页顶部的滑动图片,静态图片文件
PDFviewer:PDFviewer预览插件源码
CorpResFolder:移动端图片新闻列表生成缩略图的存放路径
Login:钉钉/企业微信单点登录静态页面
Interface:移动端api发布后代码文件
menuIcons:移动端首页菜单图标
officemobile:移动端前端页面【如果为空,联系张世平,提供移动端地址】
userIcons:协作通生成头像存放目录

②工具准备(连接访问linux系统的工具)

WindTerm,远程访问Linux系统,输入命令使用;
下载地址:https://sh.goodwaysoft.com:8257/WindTerm_2.6.0_Prerelease_2_Windows_Portable_x86_64.zip
WinSCP,远程访问Linux系统,复制代码文件、修改Nginx配置项使用;
下载地址:https://sh.goodwaysoft.com:8257/WinSCP-6.1.1-Setup.exe
使用方法:
用WindTerm、WinSCP远程连接Linux系统
解压WindTerm后,双击运行WindTerm.exe
在会话页面,右键‘新建会话’
主机:(H) Linux系统IP地址;端口:(P) 22 默认端口,可修改;OneKey:设置Linux系统的用户名,密码
添加完成后,双击会话列表中的linux系统地址,进入linux命令页面;
注意:双击linux系统地址时,此处需要下拉选择设置的密码;
WinSCP远程连接Linux系统,在‘新建标签页’,添加Linux的访问方式,配置方式同WindTerm一样

③开放端口

提供移动端的端口,加入到防火墙出入站中,示例:8001

firewall-cmd --zone=public --add-port=**8001**/tcp --permanent

重启防火墙:

systemctl restart firewalld

查看端口:

firewall-cmd --zone=public --list-ports

搭建移动端

①复制代码到Linux

  • 使用WinSCP远程工具,把代码复制到linux系统中,示例:/product/PMwise6.0/YDD/publish
    interface:移动端发布后的api代码
    officemobile:移动端前端页面,静态页面文件

②修改接口配置文件

修改interface下的appsettings.json文件,注意只需修改红框中的内容。

③PMwise相关配置

"IsDotnet6PMWise": true, //是否为6.0平台
"FlowApiUrl": "http://10.10.1.112:8253/WorkFlow/api/", //流程API服务器(审批任务)
"ListDefApiHost": "http://10.10.1.112:8253/", //列表定义服务器(台账权限过滤)
"UserResApiUrl": "http://10.10.1.112:8253/Base/api/ResApi/", //用户权限服务器 (面板功能权限使用)
"HRApiUrl": "http://10.10.1.112:8253/HR/api/", //人力API服务器(考勤)
"ImageStore": "http://10.10.1.112:8253", //获取新闻详情页面图片
"FileStoreApiUrl": "http://10.10.1.112:8253/MvcConfig/api/FileStoreAPI/",
"FileStore": "http://10.10.1.112:8253/FileStore/Services/OuterService.asmx",
"FileStoreHost": "http://10.10.1.112:8253", //FileStore服务器地址

④首页图标配置路径/日志/绑定码

"IconUrl": "", //Nginx反向代理使用,指向移动端Nginx监听端口
"Log4NetPath": "D://YDT4.0Logs", //日志地址
"BindCode": "gbcs",//协作通登录时绑定码,提供移动端地址,联系张世平申请

⑤数据库配置

"DBType": "SqlServer",//数据库类型SqlServer
"Base": "data source=10.10.1.242,1408\SQL2008;Initial Catalog=PMWise_Base;User ID=sa;PWD=123.zxc;Encrypt=True;TrustServerCertificate=True;Pooling=true;Min Pool Size=1;",
10.10.1.242,1408\SQL2008,SqlServer数据库服务器名称,注意此处用\斜杠
PMWise_Base,数据库库名称
Sa,数据库登录名
123.zxc,数据库登录密码
其它数据库连接,请参考Base库配置方式修改

⑥企业微信配置

"SSOFrom": "weixin",//企业微信使用,嵌入平台: weixin
/企业微信配置Start***/
"WeiXin_ApiRoot": "https://qyapi.weixin.qq.com",//企业微信API接口地址,确保服务器上可以访问此地址
验证方式:ping qyapi.weixin.qq.com
如果显示64 bytes from 101.226.141.58 (101.226.141.58): icmp_seq=1 ttl=53 time=4.67 ms说明可以访问企业微信的API接口,按Ctrl+C退出;
"WeiXin_CorpID": "ww2f153ef83032fc2d",//企业微信中的企业ID
"WeiXin_AgentID": "1000061",
"WeiXin_CorpSecret": "9O6sMAA5IzE8Su9GYDS03yDisN3tA1Qc1Y_Kp_GE9AE",
"WeiXin_AutoBindUser": "true", //企业微信人员绑定,默认true
注意:如果S_A_User表的MobilePhone字段有值,当前人员在点‘应用’时,会自动根据手机号查找当前人的企业微信账号,并把企业微信账号,同步到S_A_User表的weixin字段中;
/企业微信配置End***/

修改Nginx配置

1.查看Nginx安装路径

whereis nginx

/etc/nginx,Nginx配置文件所在路径 /usr/sbin,Nginx启动文件所在路径 2.使用WinSCP远程工具,进入到/etc/nginx文件夹,双击打开nginx.conf文件,增加配置项

    #PMwise6.0-移动端;
    server {
        listen       8100;
        server_name  localhost;

		location / { 
			root /product/PMwise6.0/YDD/publish; #指向移动端代码路径
			index index.html index.htm; 
		}

		# 代理自己的项目
		location /officemobile {
			alias	/product/PMwise6.0/YDD/publish/officemobile;#指向移动端【前端】代码路径
			index	index.html;
			# autoindex on;
			try_files  $uri $uri/ /officemobile/index.html;   #解决刷新404
		}
			
		# 配置代理vite中的跨域
		location /interface {
			rewrite "^/interface/(.*)$" /$1 break ; 
			proxy_pass	http://sh.goodwaysoft.com:7002;#指向移动端API接口地址,此处需要用域名
			proxy_set_header Host $host:$proxy_port;
		}
        
    }

设置移动端API接口开机自启

1.使用WinSCP远程工具,进入到/etc/systemd/system文件夹,新建文件YDD_interface.service
2.使用WindTerm.exe工具查看dotnet安装路径

which dotnet

输出:/usr/share/dotnet/dotnet
显示dotnet的安装路径
3.修改YDD_interface.service文件

[Unit]# Unit 文件描述
Description=YDD
[Service]# Service 配置参数
User=root
Type=simple
GuessMainPID=true
# 自启动项目所在的位置路径
WorkingDirectory=/product/PMwise6.0/YDD/publish/interface
#dotnet环境变量
Environment=DOTNET_CLI_HOME=/usr/share/dotnet/dotnet
# 启动移动端API接口,此处http://localhost:7002,对应Nginx配置项移动端的api接口
ExecStart=/usr/share/dotnet/dotnet YDDAPI.Web.Entry.dll --urls http://localhost:7002
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

4.设置开机自启 注册并启动启动服务

sudo systemctl enable YDD_interface.service

(启动服务)

sudo systemctl start YDD_interface.service

检查服务状态:

sudo systemctl status YDD_interface.service

重启服务:

sudo systemctl restart YDD_interface.service

检查服务状态:

sudo systemctl status YDD_interface.service

关闭服务:

sudo systemctl stop YDD_interface.service

配置调试地址

1.进入Mis系统,在**‘系统管理’->‘系统定义工具’->‘移动菜单定义’->‘单点登录配置’中,修改‘调试’中的地址

此处只需修改
‘移动端跳转路径’,‘电脑端跳转路径’**
移动端跳转路径:修改为配置移动端Nginx地址,只需修改http+IP+端口号;
电脑端跳转路径:修改为电脑Mis端跳转地址,只需修改url中的http+IP+端口号,其它不动;
2.修改调试地址:
https://sh.goodwaysoft.com:8257/interface/api/auth/login?EntryMenu=mainindexgbcs&SSOFrom=debug&code=gwadmin
https://sh.goodwaysoft.com:8257,移动端站点地址
EntryMenu=mainindexgbcs,移动菜单定义->单点登录配置,对应的编号字段
code=gwadmin系统Code账号

浏览器上访问效果如图:

企业微信配置

①修改单点登录地址

1.进入Mis系统,在**‘系统管理’->‘系统定义工具’->‘移动菜单定义’->‘单点登录配置’中,修改‘企业微信’中的地址
此处只需修改
‘移动端跳转路径’,‘电脑端跳转路径’**
移动端跳转路径:修改为配置移动端Nginx地址,只需修改http+IP+端口号;
电脑端跳转路径:修改为电脑Mis端跳转地址,只需修改url中的http+IP+端口号,其它不动;

②修改企业微信后台配置

  1. 打开浏览器,访问企业微信后台地址https://work.weixin.qq.com/wework_admin/loginpage_wx?from=myhome
  2. 在‘应用管理’,浏览器滑动到页面底部,点击‘创建应用’,创建应用
  3. 在‘开发者接口’-‘网页授权及JS-SDK’,设置可信域名
    注意:此处需要按照图片红框中的设置;
  4. 在‘开发者接口’-‘企业可信IP’,设置企业可信IP
    注意:如果有多个,用英文;隔开,示例:116.228.144.166;116.228.144.165
  5. 在‘应用页面’-‘应用主页’,设置企业可信访问页面单点登录地址;
    示例:http://sh.goodwaysoft.com:8100/interface/api/auth/login?EntryMenu=mainindexLinux
    http://sh.goodwaysoft.com:8100,移动端Nginx监听的端口;
    mainindexLinux,‘移动菜单定义’-‘单点登录配置’-‘企业微信’中对应的编号;

③验证企业微信能否正常打开

1.打开企业微信,登录企业微信;
2.在‘工作台’页面,找到创建的应用,可以正常进入移动端首页,说明企业微信部署成功;

消息、任务推送定时作业配置

1.修改消息、任务推送定时作业的配置文件app.json,如图:
数据库链接直接从移动端API接口的appsettings.json中复制;

①单点登录配置

    "SSOFrom": "weixin",//weixin代表推送企业微信任务及消息
    //移动端单点登录页面地址
    "SSOUrl": "https://sh.goodwaysoft.com:8257/interface/api/auth/login",

②组织人员同步

	//是否同步新增组织
    "Org_IsAdd": "false",
    //是否同步修改组织
    "Org_IsUpdate": "false",
    //是否同步删除组织
    "Org_IsDelete": "false",
    //组织同步最后时间
    "Org_LastSyncTime": "2020-1-1",
    //组织同步间隔小时
    "Org_SyncPeriod": "4",
    //同步的组织名称字段
    "Org_NameField": "Name",
    //排除要同步的组织以及组织下的组织,逗号隔开(只需填组织ID,不用填下属组织ID)
    "Org_WithoutIDs": "abba0129-c0a3-4afe-807e-d33c70f1d68b",
    //是否同步新增账户
    "User_IsAdd": "false",
    //是否同步修改账户
    "User_IsUpdate": "false",
    //是否同步删除账户
    "User_IsDelete": "false",
    //是否绑定账户
    "User_IsBind": "false",
    //用户是否同步所属部门(false为所属部门,true为当前部门)
    "User_IsOrgIDs": "false",
    //帐户同步最后时间
    "User_LastSyncTime": "2020-5-25",
    //帐户同步间隔小时
    "User_SyncPeriod": "0",
    //MIS手机号不存在时自动拼接邮箱
    "User_MailboxSuffix": "",

③任务/消息推送

    //是否推送任务
    "Task_IsPush": "true",
    //任务推送最后时间
    "Task_LastPushTime": "2023-03-19 00:00:00 000",
    //是否推送系统消息
    "Msg_IsPush": "true",
    //通知推送最后时间
    "Msg_LastPushTime": "2023-01-29 00:00:00 000",
    //消息执行页面菜单编号
    "Msg_EntryMenu": "push_msg",
    //是否推送系统提醒
    "Alarm_IsPush": "true",
    //通知推送最后时间
    "Alarm_LastPushTime": "2020-6-19",
    //系统提醒执行页面菜单编号
    "Alarm_EntryMenu": "push_alarm",

④企业微信配置

    "WeiXin_ApiRoot": "https://qyapi.weixin.qq.com",
    //企业微信CorpID
    "WeiXin_CorpID": "ww2f153ef83032fc2d",
    //应用agentid
    "WeiXin_AgentId": "1000017",
    //应用密钥
    "WeiXin_AppSecret": "dRwI_AgXgXtlABoWtYmGBoOoBkNkwgO0DhES2ql6oYo",
    //通讯录密钥
    "WeiXin_AddressSecret": "XMfxwx7S1t2VAmYUWMXzIgR2xIRgvSRGYs9dUsld2Xs",
    //获取程序的组织应用范围根节点ID  默认为1 
    "WeiXin_AuthOrgRootID": "1",

⑤单点登录配置

在‘移动菜单定义’-‘单点登录配置’-‘企业微信’,搜索编号push_task的数据;
移动端跳转路径:修改为移动端Nginx地址;
电脑端跳转路径:修改为Mis系统地址;
"WeiXin_AgentID": "1000061",
"WeiXin_CorpSecret": "9O6sMAA5IzE8Su9GYDS03yDisN3tA1Qc1Y_Kp_GE9AE",
2.设置开机自启,见移动端api接口地址的开机自启服务,配置方式一样;