Forráskód Böngészése

人员管理和值班首页搜索

liuyang 5 éve
szülő
commit
b2c62a072f

+ 48 - 25
backend/src/dashoo.cn/modi_webapi/app/api/personnel/personnel.go

@@ -1,7 +1,8 @@
 package personnel
 
 import (
-	"dashoo.cn/modi_webapi/app/service/personnel"
+	"dashoo.cn/modi_webapi/app/model/personnel"
+	service "dashoo.cn/modi_webapi/app/service/personnel"
 	"dashoo.cn/modi_webapi/library/request"
 	"dashoo.cn/modi_webapi/library/response"
 	"fmt"
@@ -13,12 +14,20 @@ import (
 type Controller struct {
 }
 
-func (c *Controller) GetAllPersonnel(r *ghttp.Request){
+func (c *Controller) GetAllPersonnel(r *ghttp.Request) {
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
+	// 初始化service
+	service, err := service.NewPersonnelService(tenant)
+	if err != nil {
+		response.Json(r, 1, err.Error())
+	}
+
 	page := request.GetPageInfo(r)
 	where := ""
 
-	if name := r.GetString("Name"); name != ""{
-		if where == ""{
+	if name := r.GetString("Name"); name != "" {
+		if where == "" {
 			where = fmt.Sprintf(" PersonnelName LIKE '%%%v%%'", name)
 		} else {
 			where += fmt.Sprintf(" AND PersonnelName LIKE '%%%v%%'", name)
@@ -26,14 +35,14 @@ func (c *Controller) GetAllPersonnel(r *ghttp.Request){
 	}
 
 	var result []personnel.Entity
-	if err := personnel.GetAllPersonnel(page, where, &result); err != nil{
-		if err.Error() == "sql: no rows in result set"{
+	if err := service.GetAllPersonnel(page, where, &result); err != nil {
+		if err.Error() == "sql: no rows in result set" {
 			response.Json(r, 0, "")
 			return
 		}
 		response.Json(r, -1, err.Error())
-	}else {
-		count, err1 := personnel.FindPersonnelCount(where)
+	} else {
+		count, err1 := service.FindPersonnelCount(where)
 		if err1 != nil {
 			response.Json(r, -1, err1.Error())
 		} else {
@@ -47,13 +56,12 @@ func (c *Controller) GetAllPersonnel(r *ghttp.Request){
 	}
 }
 
-
-func (c *Controller) GetOnePersonnel(r *ghttp.Request){
+func (c *Controller) GetOnePersonnel(r *ghttp.Request) {
 	id := r.GetInt("id")
 	if result, err := personnel.FindOne(id); err != nil {
 		response.Json(r, 1, err.Error())
 		r.ExitAll()
-	}else {
+	} else {
 		var records response.PagedRecords
 		records.Records = result
 		response.Json(r, 0, "", records)
@@ -61,9 +69,9 @@ func (c *Controller) GetOnePersonnel(r *ghttp.Request){
 
 }
 
-func (c *Controller) AddPersonnel(r *ghttp.Request){
+// 添加
+func (c *Controller) AddPersonnel(r *ghttp.Request) {
 	Personnel := new(personnel.Entity)
-	fmt.Println("---Personnel---",Personnel)
 	if err := r.Parse(Personnel); err != nil {
 		// 数据验证错误
 		if v, ok := err.(*gvalid.Error); ok {
@@ -74,8 +82,16 @@ func (c *Controller) AddPersonnel(r *ghttp.Request){
 		response.Json(r, 1, err.Error())
 		r.ExitAll()
 	}
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
+	// 初始化service
+	service, err := service.NewPersonnelService(tenant)
+	if err != nil {
+		response.Json(r, 1, err.Error())
+	}
+
 	// 查询code是否存在
-	info, _ := personnel.GetPersonnelByCode(Personnel.PersonneCode)
+	info, _ := service.GetPersonnelByCode(Personnel.PersonneCode)
 	if info != nil {
 		response.Json(r, 1, "人员编号已存在")
 	}
@@ -91,7 +107,7 @@ func (c *Controller) AddPersonnel(r *ghttp.Request){
 	Personnel.ModifiedBy = realName
 	Personnel.ModifiedUserId = userId
 
-	if result,err := personnel.Insert(Personnel); err != nil {
+	if result, err := personnel.Insert(Personnel); err != nil {
 		response.Json(r, 1, err.Error())
 	} else {
 		var records response.PagedRecords
@@ -102,7 +118,10 @@ func (c *Controller) AddPersonnel(r *ghttp.Request){
 	}
 }
 
-func (c *Controller) UpdatePersonnel(r *ghttp.Request){
+// 更新
+func (c *Controller) UpdatePersonnel(r *ghttp.Request) {
+	// tenant 租户模式
+	tenant := r.Header.Get("Tenant")
 	Personnel := new(personnel.Entity)
 	if err := r.Parse(Personnel); err != nil {
 		// 数据验证错误
@@ -122,21 +141,25 @@ func (c *Controller) UpdatePersonnel(r *ghttp.Request){
 	Personnel.ModifiedOn = currentTime
 	Personnel.ModifiedBy = realName
 	Personnel.ModifiedUserId = userId
-
-	if _,err := personnel.Replace(Personnel); err != nil {
+	// 初始化service
+	service, err := service.NewPersonnelService(tenant)
+	if err != nil {
 		response.Json(r, 1, err.Error())
+	}
+
+	// 修改
+	code, msg := service.UpdatePersonnelById(Personnel)
+	if code {
+		response.Json(r, 0, msg)
 	} else {
-		var records response.PagedRecords
-		//id, _ := result.LastInsertId()
-		//theChargeRecord.Id = int(id)
-		records.Records = Personnel
-		response.Json(r, 0, "", records)
+		response.Json(r, -1, msg)
 	}
 }
 
-func (c *Controller) DeletePersonnel(r *ghttp.Request){
+// 删除
+func (c *Controller) DeletePersonnel(r *ghttp.Request) {
 	id := r.GetInt("id")
-	if _,err := personnel.Delete(fmt.Sprintf("Id=%v", id)); err != nil{
+	if _, err := personnel.Delete(fmt.Sprintf("Id=%v", id)); err != nil {
 		response.Json(r, 1, err.Error())
 		r.ExitAll()
 	} else {

+ 1 - 0
backend/src/dashoo.cn/modi_webapi/app/model/personnel/personnel.go

@@ -0,0 +1 @@
+package personnel

+ 19 - 20
backend/src/dashoo.cn/modi_webapi/app/service/personnel/personnel_entity.go → backend/src/dashoo.cn/modi_webapi/app/model/personnel/personnel_entity.go

@@ -12,24 +12,24 @@ import (
 
 // Entity is the golang structure for table personnel.
 type Entity struct {
-	Id                      int       `xorm:"not null pk autoincr INT(10)"`
-	PersonnelName           string    `xorm:"VARCHAR(50)"`      //名称
-	PersonneCode           string    `xorm:"VARCHAR(255)"`     //编号
-	Person              	 string    `xorm:"VARCHAR(50)"`          //联系人
-	Telephone            string    `xorm:"VARCHAR(255)"`     //电话
-	Mailbox              string    `xorm:"VARCHAR(255)"`     //邮箱
-	CardId                   string    `xorm:"VARCHAR(255)"`     //身份证号
-	Address                   string    `xorm:"VARCHAR(255)"`     //地址
-	Website          string    `xorm:"VARCHAR(255)"`     //网站地址
-	DepartmentId                string    `xorm:"VARCHAR(50)"`      //组织id
-	DepartmentName                 string    `xorm:"VARCHAR(255)"`     //组织名称
-	Type                    string    `xorm:"VARCHAR(50)"`       //类型
-	CreateOn                *gtime.Time `xorm:"DATETIME created"`
-	CreateUserId            int       `xorm:"INT(10)"`
-	CreateBy                string    `xorm:"VARCHAR(50)"`
-	ModifiedOn              *gtime.Time `xorm:"DATETIME updated"`
-	ModifiedUserId          int       `xorm:"INT(10)"`
-	ModifiedBy              string    `xorm:"VARCHAR(50)"`
+	Id             int         `xorm:"not null pk autoincr INT(10)"`
+	PersonnelName  string      `xorm:"VARCHAR(50)"`  //名称
+	PersonneCode   string      `xorm:"VARCHAR(255)"` //编号
+	Person         string      `xorm:"VARCHAR(50)"`  //联系人
+	Telephone      string      `xorm:"VARCHAR(255)"` //电话
+	Mailbox        string      `xorm:"VARCHAR(255)"` //邮箱
+	CardId         string      `xorm:"VARCHAR(255)"` //身份证号
+	Address        string      `xorm:"VARCHAR(255)"` //地址
+	Website        string      `xorm:"VARCHAR(255)"` //网站地址
+	DepartmentId   string      `xorm:"VARCHAR(50)"`  //组织id
+	DepartmentName string      `xorm:"VARCHAR(255)"` //组织名称
+	Type           string      `xorm:"VARCHAR(50)"`  //类型
+	CreateOn       *gtime.Time `xorm:"DATETIME created"`
+	CreateUserId   int         `xorm:"INT(10)"`
+	CreateBy       string      `xorm:"VARCHAR(50)"`
+	ModifiedOn     *gtime.Time `xorm:"DATETIME updated"`
+	ModifiedUserId int         `xorm:"INT(10)"`
+	ModifiedBy     string      `xorm:"VARCHAR(50)"`
 }
 
 // OmitEmpty sets OPTION_OMITEMPTY option for the model, which automatically filers
@@ -43,7 +43,6 @@ func (r *Entity) Insert() (result sql.Result, err error) {
 	return Model.Data(r).Insert()
 }
 
-
 // Replace does "REPLACE...INTO..." statement for inserting current object into table.
 // If there's already another same record in the table (it checks using primary key or unique index),
 // it deletes it and insert this one.
@@ -68,4 +67,4 @@ func (r *Entity) Update() (result sql.Result, err error) {
 // Delete does "DELETE FROM...WHERE..." statement for deleting current object from table.
 func (r *Entity) Delete() (result sql.Result, err error) {
 	return Model.Where(gdb.GetWhereConditionOfStruct(r)).Delete()
-}
+}

+ 1 - 1
backend/src/dashoo.cn/modi_webapi/app/service/personnel/personnel_model.go → backend/src/dashoo.cn/modi_webapi/app/model/personnel/personnel_model.go

@@ -366,4 +366,4 @@ func (m *arModel) Chunk(limit int, callback func(entities []*Entity, err error)
 		return callback(entities, err)
 	})
 
-}
+}

+ 36 - 11
backend/src/dashoo.cn/modi_webapi/app/service/personnel/personnel.go

@@ -5,27 +5,52 @@
 package personnel
 
 import (
+	"dashoo.cn/micro_libary/db"
+	"dashoo.cn/modi_webapi/app/model/personnel"
 	"dashoo.cn/modi_webapi/library/request"
-	"github.com/gogf/gf/frame/g"
+	"fmt"
 )
 
-var (
-	recordsTable = g.DB().Table("personnel").Safe()
-)
+type PersonnelService struct {
+	db.ServiceBase
+}
+
+// NewPersonnelService 初始化CourseService
+func NewPersonnelService(tenant string) (PersonnelService, error) {
+	var servcie PersonnelService
+	err := servcie.Init(tenant, personnel.Table)
+	return servcie, err
+}
 
-func GetAllPersonnel(page request.PageInfo, where string, result *[]Entity)(err error){
-	err = recordsTable.Where(where).Limit((page.Current-1)*page.Size, page.Size).Scan(result)
+func (s PersonnelService) GetAllPersonnel(page request.PageInfo, where string, result *[]personnel.Entity) (err error) {
+	err = s.SafeModel.Where(where).Limit((page.Current-1)*page.Size, page.Size).Scan(result)
 	return err
 }
 
-func FindPersonnelCount(where string)(int, error){
-	return recordsTable.Where(where).Count()
+//
+func (s PersonnelService) FindPersonnelCount(where string) (int, error) {
+	return s.SafeModel.Where(where).Count()
 }
 
 // 根据Code查询
-func GetPersonnelByCode(Code string) (res *Entity, err error){
-	model := recordsTable.Where("PersonneCode", Code)
-	var result *Entity
+func (s PersonnelService) GetPersonnelByCode(Code string) (res *personnel.Entity, err error) {
+	model := s.SafeModel.Where("PersonneCode", Code)
+	var result *personnel.Entity
 	err = model.Struct(&result)
 	return result, nil
 }
+
+// 更新
+func (s PersonnelService) UpdatePersonnelById(param *personnel.Entity) (code bool, msg string) {
+	// 先查询除了自己,当前Code是否存在
+	where := fmt.Sprintf(" PersonneCode = %v And Id <> %v", param.PersonneCode, param.Id)
+	count, _ := s.FindPersonnelCount(where)
+	if count > 0 {
+		return false, "人员编号已存在!"
+	}
+	_, err := s.SafeModel.Where("Id", param.Id).Data(param).Update()
+	if err != nil {
+		return false, err.Error()
+	}
+	return true, "更新成功"
+}

+ 29 - 4
frontend_web/src/views/duty/index.vue

@@ -4,12 +4,19 @@
       <el-form size="mini"
                ref="form"
                :inline="true"
-               class="sbutton_padding">
+               class="sbutton_padding"
+               style="margin-top: -7px;text-align:right;">
         <el-form-item label="学年"
                       class="sbutton_margin">
-          <el-input style="width: 140px;"
-                    v-model="search.Year"
-                    placeholder="请输入需要查询的年级"></el-input>
+
+          <el-select v-model="search.Year"
+                     placeholder="请选择年级学年">
+            <el-option v-for="item in years"
+                       :key="item.value"
+                       :label="item.label"
+                       :value="item.value">
+            </el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="学期"
                       class="sbutton_margin">
@@ -22,6 +29,12 @@
             </el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="标题"
+                      class="sbutton_margin">
+            <el-input style="width: 140px;"
+                      v-model="search.Title"
+                      placeholder="请输入标题"></el-input>
+        </el-form-item>
         <el-button size="mini"
                    type="primary"
                    @click="initDatas()"
@@ -153,12 +166,14 @@ export default {
       term: [],
       activities: [],
       Year: '',
+      years: [],
       Title: '',
       Time: '',
       Status: '',
       search: {
         Term: '',
         Year: '',
+        Title: '',
         page: {
           total: 0,
           current: 1,
@@ -176,6 +191,9 @@ export default {
     this.getTerm()
     this.getStatus()
     this.initDatas()
+    var myDate = new Date()
+    var year = myDate.getFullYear()// 获取当前年
+    this.initSelectYear(year)
   },
   methods: {
     // 获取学期
@@ -255,6 +273,7 @@ export default {
         _size: this.size,
         Year: this.search.Year,
         Term: this.search.Term,
+        Title: this.search.Title,
         Order: this.search.Order,
         Prop: this.search.Prop
       }
@@ -349,6 +368,12 @@ export default {
       this.search.classification = ''
       this.CalibrationTime = []
       this.initDatas()
+    },
+    initSelectYear (year) {
+      this.years = []
+      for (let i = 0; i < 30; i++) {
+        this.years.push({ value: (year - i), label: (year - i) + '年' })
+      }
     }
 
   }