123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- package models
- import (
- "errors"
- "fmt"
- "zhiyuan/pkg/db"
- "github.com/gin-gonic/gin"
- )
- type WorkSiteNode struct {
- ID int `json:"id" type:"int"`
- SiteId int `json:"site_id" type:"int" search:"="`
- NodeId int `json:"node_id" type:"int" search:"="`
- Name string `json:"name" type:"string" search:"like"`
- WorkerId int `json:"worker_id" type:"int"`
- StartTime int `json:"starttime" type:"int"`
- EndTime int `json:"endtime" type:"int"`
- ProcessIds string `json:"process_ids" type:"string"`
- ReturnVisitID int `json:"return_visit_id" type:"int"`
- QualityAcceptID int `json:"quality_accept_id" type:"int"`
- RealStartTime int `json:"real_starttime" type:"int"`
- RealEndTime int `json:"real_endtime" type:"int"`
- ReturnVisitContent string `json:"return_visit_content" label:"回访内容" type:"string"`
- ReturnVisitAdminId int `json:"return_visit_admin_id"`
- ReturnVisitTime int `json:"return_visit_time"`
- Days int `json:"days"`
- Mark string `json:"mark" label:"备注" type:"string"`
- State int `json:"state" label:"状态" type:"int" search:"="`
- DeletedAt int64 `json:"deleted_at" prop:"add:false select:false"`
- CreatedAt int64 `json:"created_at" prop:"add:false select:false"`
- UpdatedAt int64 `json:"updated_at" prop:"add:false"`
- db.BaseModel
- }
- func (WorkSiteNode) TableName() string {
- return "zy_work_site_node"
- }
- func (a WorkSiteNode) GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*WorkSiteNode, error) {
- if retVal == nil {
- var workSiteNode *WorkSiteNode
- err := db.GetOne(a.TableName(), where, fields, &workSiteNode)
- return workSiteNode, err
- } else {
- err := db.GetOne(a.TableName(), where, fields, retVal)
- return nil, err
- }
- }
- func (a WorkSiteNode) GetMulti(where map[string]interface{}, fields []string, retVal interface{}) ([]*WorkSiteNode, error) {
- if retVal == nil {
- var workSiteNode []*WorkSiteNode
- err := db.GetMulti(a.TableName(), where, fields, &workSiteNode)
- return workSiteNode, err
- } else {
- err := db.GetMulti(a.TableName(), where, fields, retVal)
- return nil, err
- }
- }
- func (a WorkSiteNode) GetOneRaw(where map[string]string, param map[string]interface{}, retVal interface{}) (*WorkSiteNode, error) {
- workSiteNode, err := a.GetMultiRaw(where, param, retVal)
- if err != nil {
- return nil, err
- }
- if len(workSiteNode) == 0 {
- return nil, errors.New("empty record2")
- }
- return workSiteNode[0], nil
- }
- func (a WorkSiteNode) GetMultiRaw(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*WorkSiteNode, error) {
- field := "SELECT * FROM zy_work_site_node "
- if retVal == nil {
- var workSiteNode []*WorkSiteNode
- err := db.GetMultiRaw(field, where, param, &workSiteNode)
- return workSiteNode, err
- } else {
- err := db.GetMultiRaw(field, where, param, retVal)
- return nil, err
- }
- }
- type WorkSiteNodeModel struct {
- WorkSiteNode
- Username string `json:"username" search:"like" prop:"select:worksite.username"`
- Phone string `json:"phone" search:"like" prop:"select:worksite.phone"`
- Village string `json:"village" search:"like" prop:"select:worksite.village"`
- Address string `json:"address" search:"like" prop:"select:worksite.address"`
- RoomNo string `json:"room_no" search:"like" prop:"select:worksite.room_no"`
- Area string `json:"area" search:"like" prop:"select:worksite.area"`
- WorkerName string `json:"worker_name" label:"姓名" type:"string" prop:"select:worker.name"`
- WorkerPhone string `json:"worker_phone" label:"电话号码" type:"string" prop:"select:worker.phone"`
- }
- func (WorkSiteNodeModel) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
- return true
- }
- func (WorkSiteNodeModel) Page() bool {
- return false
- }
- func (WorkSiteNodeModel) Count() bool {
- return true
- }
- func (model WorkSiteNodeModel) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
- return []db.JoinModel{
- {
- Model: WorkSite{},
- As: "worksite",
- On: []string{"`worksite`.`id` = " + model.TableName() + ".`site_id`"},
- },
- {
- Model: Worker{},
- As: "worker",
- On: []string{"`worker`.`id` = " + model.TableName() + ".`worker_id`"},
- },
- }
- }
- type WorkSiteNodeQualityAcceptModel struct {
- WorkSiteNodeModel
- PkgName string `json:"pkgname" search:"like" prop:"select:workpkg.name"`
- PkgDays int64 `json:"pkgdays" type:"int" search:"=" prop:"select:workpkg.days"`
- DesignerName string `json:"designer_name" search:"like" prop:"select:designer.username"`
- DesignerPhone string `json:"designer_phone" prop:"select:designer.phone"`
- DesignerHeadImgUrl string `json:"designer_headimgurl" prop:"select:designer.headimgurl"`
- SalesmanName string `json:"salesman_name" search:"like" prop:"select:salesman.username"`
- SalesmanPhone string `json:"salesman_phone" prop:"select:salesman.phone"`
- SalesmanHeadImgUrl string `json:"salesman_headimgurl" prop:"select:salesman.headimgurl"`
- ManagerName string `json:"manager_name" search:"like" prop:"select:manager.username"`
- ManagerPhone string `json:"manager_phone" prop:"select:manager.phone"`
- ManagerHeadImgUrl string `json:"manager_headimgurl" prop:"select:manager.headimgurl"`
- ProjectLeaderName string `json:"project_leader_name" search:"like" prop:"select:project_leader.username"`
- ProjectLeaderPhone string `json:"project_leader_phone" prop:"select:project_leader.phone"`
- ProjectLeaderHeadImgUrl string `json:"project_leader_headimgurl" prop:"select:project_leader.headimgurl"`
- StartTime int64 `json:"starttime" prop:"select:worksite.starttime"`
- EndTime int64 `json:"endtime" prop:"select:worksite.endtime"`
- RealStartTime int64 `json:"real_starttime" prop:"select:worksite.real_starttime"`
- RealEndTime int64 `json:"real_endtime" prop:"select:worksite.real_endtime"`
- QualityCreated int64 `json:"quality_created" prop:"select:worksitequalityacceptitem.created_at"`
- RequireId int64 `json:"require_id" prop:"select:workprocessrequire.id"`
- RequireName string `json:"require_name" search:"like" prop:"select:workprocessrequire.name"`
- RequireContent string `json:"require_content" search:"like" prop:"select:workprocessrequire.content"`
- Workload int64 `json:"workload" type:"int" search:"=" prop:"select:if((isnull(worksiteprocesspoint.id))or(worksiteprocesspoint.created_at>=zy_work_site_node.starttime+(zy_work_site_node.days+workprocessrequire.days)*86400),0,1)"`
- QualityState int64 `json:"quality_state" type:"int" search:"=" prop:"select:if(isnull(worksitequalityacceptitem.id),0,worksitequalityacceptitem.state+1)"`
- QualityMark string `json:"quality_mark" search:"like" prop:"select:worksitequalityacceptitem.mark"`
- }
- func (model WorkSiteNodeQualityAcceptModel) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
- s.Where = append(s.Where, "`workprocessrequire`.`quality`=1", fmt.Sprintf("not isnull(worksitequalityacceptitem.id) or unix_timestamp() >= `%s`.`starttime` + (`%s`.`days` + `workprocessrequire`.`days` - 1) * 86400", model.TableName(), model.TableName()))
- return true
- }
- func (WorkSiteNodeQualityAcceptModel) Page() bool {
- return false
- }
- func (WorkSiteNodeQualityAcceptModel) Count() bool {
- return true
- }
- //func (model WorkSiteNodeQualityAcceptModel) GroupBy() string {
- // return model.TableName() + ".`id`, `workprocessrequire`.`id`"
- //}
- func (model WorkSiteNodeQualityAcceptModel) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
- return append(model.WorkSiteNodeModel.LeftJoin(data, s),
- db.JoinModel{
- Model: WorkPkg{},
- As: "workpkg",
- On: []string{
- "`workpkg`.`id` = `worksite`.`pkg_id`",
- },
- },
- db.JoinModel{
- Model: Admin{},
- As: "designer",
- On: []string{"`designer`.`id` = `worksite`.`designer_id`"},
- },
- db.JoinModel{
- Model: Admin{},
- As: "manager",
- On: []string{"`manager`.`id` = `worksite`.`manager_id`"},
- },
- db.JoinModel{
- Model: Admin{},
- As: "project_leader",
- On: []string{"`project_leader`.`id` = `worksite`.`project_leader_id`"},
- },
- db.JoinModel{
- Model: Admin{},
- As: "salesman",
- On: []string{"`salesman`.`id` = `worksite`.`salesman_id`"},
- },
- db.JoinModel{
- Model: WorkProcess{},
- As: "workprocess",
- On: []string{
- "`workprocess`.`node_id` = " + model.TableName() + ".`node_id`",
- "FIND_IN_SET(`workprocess`.`id`, " + model.TableName() + ".`process_ids`)",
- },
- },
- db.JoinModel{
- Model: WorkProcessRequire{},
- As: "workprocessrequire",
- On: []string{
- "`workprocessrequire`.`process_id` = `workprocess`.`id`",
- "`workprocessrequire`.`state` = 1",
- },
- },
- db.JoinModel{
- Model: WorkSiteProcessPoint{},
- As: "worksiteprocesspoint",
- On: []string{
- "`worksiteprocesspoint`.`site_node_id` = " + model.TableName() + ".`id`",
- "`worksiteprocesspoint`.`require_id` = `workprocessrequire`.`id`",
- },
- },
- db.JoinModel{
- Model: WorkSiteQualityAcceptItem{},
- As: "worksitequalityacceptitem",
- On: []string{
- "`worksitequalityacceptitem`.`site_node_id` = " + model.TableName() + ".`id`",
- "`worksitequalityacceptitem`.`require_id` = `workprocessrequire`.`id`",
- },
- })
- }
|