Database Installation Instructions

DGX-HRMS
考勤与薪酬管理系统

考勤、薪酬、门禁、多功能集成系统,助力企业降本增效! Details

整合自动化考勤与薪酬计算, 高度安全的流程化,保障薪酬计算安全可控, 请假排班,多分支,连锁,分销, 多账目,功能全面。

DGX HRMS 数据库服务部署

English Version: README.MD

databaseSetup1

DataBaseSetupV32 VERSION: V3.2.2025.04 数据库初始化

旧版本 DataBaseCreateCoreV3_ENHANCE 2024.05

**DGX HRMS **

DGX Attendance & Salary HRMS人力资源与薪酬管理系统 数据库初始化

取消证书授权安装

数据库安装:取消需要使用证书授权安装。

项目目的和作用

目标:为客户初始化部署, 创建初始化数据库,

Objective: Initialize deployment for customers and create an initial database.

Download Deploy exe from :

https://github.com/lawtatfaitony/DataBaseSetupV32

LICENSE证书安装

需要版权方授权的证书文件复制到应用程序根目录下: AppAuth.key 或者系统安装盘下c:

第一步 目标数据库

必须检查连接串是否正常链接,特别数据库是不是空白的目标数据库

[DATABASE CONNECTION STRING : Data Source=(local)\DATASRV;Initial Catalog=DataGuardX;
User ID=sasa;Password=0*1*3;
Connect Timeout=300;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultipleActiveResultSets=true;]

TRY_TO_CONNECT_DATABASE

安装秘诀: 注意黄色文字, 按 [ENTER] 是默认操作。

第二步 数据库账号 admin

MSSQL 2019/2016 SERVER 先创建一个账号 admin (或者其他名称), 并且必须设置 架构Scheme = dbo

image-20240914224618971

第三步 数据库存储路径

创建一个空白的数据库,注意指定具体的数据库存储路径 如: D:\DataBase

第四步 空白数据与程序设置

检查账户Admin是不是数据库所有者,即系schema还不是 dbo

1、设置空白数据库

​ 先在MS SQL 2016/1029//2022 的STUDIO 数据库管理工具打开链接后,

image-20240531103401274

2、设置连接串

​ 在 文件 中 appsettings.json,设置对应的数据库连接

3、配置appsetting.json

​ 位于应用程序下的根目录,用于设置运行相关的数据。

    //节点定义创建的用户
    "systemUserList": [
        {
          "userName": "Supervisor",				//默认的密码是 admin888
          "email": "Supervisor@abc.com"			//这里可以改为公司的真实EMAIL
        },
        {
          "userName": "Admin",					//默认的密码是 admin888
          "email": "Admin@abc.com"				//这里可以改为公司的真实EMAIL 
        }
   ] 

4、检查操作系统语言

如果界面出现乱码,可能原因是:

  • CMD没有设置uft-8编码显示.

  • 系统没有支持的语言,建议在系统设置->区域语言->添加英文、简体、繁体。

运行

命令方式

$ DataBaseCoreCoreV3 "20211210" , "IN60006"  

//第一个参数是总公司ID,必须少于等于8位的数字。
//第二个参数是行业ID, 行业ID的参考来源 JsonData/Industry.zh-HK.json 或者其他语言版本 或者 行业对照表.csv。

Bat文件方式

或者 通过存入bat文件方式: 参数输入形式修改参数后运行.bat

先打开 CMD ,然后输入: DataBaseCreateCoreV3.bat

DataBaseCreateCoreV3.bat 文件内容如下:

rem PARAMETERS 1: MainComId 2:IndustryId
DataBaseCreateCoreV3 "999901" "IN60006"

上述第一个参数书MainComID,第二个是行业参数ID,具体参考文件:行业对照表.csv

这样可以特定生成自定义的MainComID,

开始运行

确认运行提示的信息

​ 包括 数据服务链接串和Language.Jason的修订日期

输入行业编号

image-20240602011629694

ENTER 确定创建管理员账户

按[ENTER] 确认是否创建系统操作账户,并且在根目录下生成txt文件保存系统操作账户。

image-20240602020416439

以下是操作过程中注意的问题:


如何还原数据库

如果创建一个种子数据库,以便每次部署都用这个数据库的情况,则需要做一下动作:

第一步:先复制 MDF和LOG 文件,然后附加到本地数据.如果是BAK备份文件,则要选择还原时候的Option选择强制OverWrite等等前两个option都勾选.

第二步:附加数据库的同时会把来源的数据库用户也会复制过来的,此时可以强制删除,但可以会把本地的数据库服务器的用户都删除掉,则可以先把数据库当前的admin用户降级到guest后就可以删除当前的数据库用户而不会导致删除DB Server 的系统用户. 目的改变架构schema所有者架空Admin用户才可以删除的.

如:

USE DataGuardXcore;
--DROP USER [admin]; 这样删除不行的
ALTER USER [admin] WITH DEFAULT_SCHEMA = guest; 先降级后再删除 目的改变架构schema所有者
然后
DROP USER [admin];

MainComId总公司ID规则

MainComId总公司ID生成规则与技巧2021年6月28日: 则生成的ID是 210627

年度月度日 的数字合并就是公司的ID.

由于太长的ID不方便,如果同一天安装两个,则会出现ID冲突,解决这个问题 可以通过输入特定参数安装.

输入预设的总公司ID和对应的行业

参数输入形式修改参数后运行.bat
rem PARAMETERS 1: MainComId 2:IndustryId
DataBaseCreateCoreV3 "999901" "IN60006"     

数据库用户角色

数据库所有者DBO

账号和密码保存在一个txt文件

image-20250414031551049

然后会创建一个txt文件保存对应的账号和密码的.

系统管理员和总公司账户的区别

APPLICATION_DATABASE_GENERATION_TOOL_-_OPERATION_INSTRUCTIONS_VER3.png

系统管理员是管理整个系统的最高权限,而总公司账户是用于管理总公司下的所有资源,为何称为[总公司账户]:由于以公司为单位下还可以有分公司的. 例如:建筑行业里面: 分多个分公司就是旗下的二判,二判可以是由总公司分拨资源提供系统以管理旗下的员工,当然如果是CLOUD概念下,可以由总公司架构一个云端系统提供给旗下二判,以二判为独立公司自我管理公司资源.

The system administrator has the highest authority to manage the entire system, while the head office account is used to manage all resources under the head office. Why is it called the head office account? Because a company can have branches under it. For example, in the construction industry, multiple branches are the sub-contractors under it. The sub-contractors can be provided with resources by the head office to manage their employees. Of course, if it is under the CLOUD concept, the head office can build a cloud system to provide it to the sub-contractors under it, so that the sub-contractors can manage company resources as independent companies.

同步语言包Language.json

文件在: 应用程序 JsonData/Language.json 这个文件来自LangMXcore应用程序的 jsonData/下面

默认资源库在Language.json的配置语言标识

LANGUAGE_JSON

上述黄色字的两行都是选择项,一般情况下都是[ENTER]确定。 Language.json文件数据同步到数据库的每一条记录都会慢一点的。运行过程中,可以Sceen Cut (Win+Shift+S),查阅是否异常。

执行 SychronizeM 同步语言包

​ 执行 SychronizeM.EXE 同步语言包D:\STAR\SychronizeM

image-20240913191322622

如果重建一次的操作

如果一旦操作失败或者其他原因导致要重新一操作一次,可以清空数据库,而无需重新创建建数据库。

第一步:清空约束或数据

在删除所有表的前提是要清空约束或数据才能删除的:

--若要清空 MSSQL 2019 中所有表的数据,您可以使用以下 T-SQL 语句:
c --执行这句就可以:删除约束
EXEC sp_MSForEachTable 'DELETE FROM ?' 							--删除所有数据
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' 	--恢复约束

这些 T-SQL 语句将会逐一对每一个表执行暂时禁用约束、删除数据、重新启用约束的操作,从而清空所有表的数据。请谨慎使用这个操作,因为删除数据后将无法恢复。

第二步:删除由用户建立的表

在 MSSQL 2019 中,您可以使用以下 T-SQL 语句来删除所有由用户建立的表:

USE [YourDatabaseName];

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += 'DROP TABLE ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ';' 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA <> 'sys';

EXEC sp_executesql @sql;

image-20240602001137568

请确保将 [YourDatabaseName] 替换为您的数据库名称。这个 T-SQL 语句将会动态生成一条包含删除所有用户建立表格的 SQL 语句,然后执行这些语句来删除所有用户建立的表格。请谨慎使用这个操作,因为删除表格后数据将无法恢复。

快捷: 清除约束和清除用户表.sql 这个文件点击执行多次直到提示完成,就可以切底删除用户建立的数据库表和约束。

创建作业备份

第一步: 创建 存储过程

SP_BACKUPDB.sql

通过 sqlCMD命令执行 本分作业, 本这个sqlCMD写成批处理.bat 在Windows 的 [TaskSchedule 任务调度] 设置每日执行此bat文件,实现每日备份.

--首先在 MS SQL SERVER 创建 STORE PROCEDURE
USE [DataGuardXcore]
GO
/****** Object:  StoredProcedure [dbo].[SP_BACKUPDB]    Script Date: 15/9/2024 0:11:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SP_BACKUPDB]
AS
DECLARE @strBackup nvarchar(200)
DECLARE @strBackupIshopX nvarchar(200)
--DECLARE @strToday nvarchar(8)
--DECLARE @strTime nvarchar(8)
--SELECT @strToday = CONVERT(CHAR(8), GETDATE(), 112)
--SELECT @strTime = LEFT(CONVERT(CHAR(8), GETDATE(), 108), 2) + SUBSTRING(CONVERT(CHAR(8), GETDATE(), 108), 4, 2) + RIGHT(CONVERT(CHAR(8), GETDATE(), 108), 2)

DECLARE @str varchar(200)
set @str = replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
  
SET @strBackup = 'C:\DataBaseBAK\DataGuardXcore_' + @str + '.bak'

BACKUP DATABASE DataGuardXcore
TO DISK= @strBackup
WITH FORMAT

 

第二步: BAT 命令 执行 sqlCMD

然后 写一个 BAT 命令 执行 sqlCMD 命令, 具体的bat文件内容如下:

----

It is recommended to select outline browsing!

Author:Tony Law

Email: caihaili82@gmail.com

行业资讯


CIC認證建造業地盤智能管理平臺:整合考勤、薪酬與合規監管,提升香港建造業管...
  • 浏览 812
  • Author :Tony

借助 AI-BOX 在任何環境中更快地啟動 AI, 如何通過集成工具、可重復...
  • 浏览 2757
  • Author :Tony

HR行業的盡職調查(Due Diligence),目前的AI大時代潮流,應用...
  • 浏览 2901
  • Author :Tony
 
未來的SEO和目前做的可能正相反。以前在移動SEO的帖子里說過,目前移動搜索...
  • 浏览 7700
  • Author :Tony

它與普通服務商有什么區別——刷臉支付
  • 浏览 1177
  • Author :Tony

想更深入了解更多臉部辨識的應用趨勢?歡迎閱讀人臉辨識2022應用趨勢分析
  • 浏览 6095
  • Author :網站編輯

數據標註是機器學習成功的關鍵步驟之一,它確保模型能夠從高質量的訓練數據中學習...
  • 浏览 1219
  • Author :Tony Law

AI識別與警報的解決解決方案
  • 浏览 1349
  • Author :Tony Law