package db import ( "errors" "github.com/go-xorm/xorm" "leit.com/leit_seat_aps/common" "xorm.io/core" ) // 项目对象 type Me_project struct { Finr int `xorm:"pk"` Projectid string `xorm:"pk"` Descr string Enabled int Plantsitecode int Parse_tod int Parse_seq int Parse_reorder int Parse_calloff int Fileserver_host string Tod_folder string Seq_folder string Reorder_folder string Calloff_folder string Tod_filename_regexp string Seq_filename_regexp string Reorder_filename_regexp string Calloff_filename_regexp string Tod_verify_part int Tod_verify_partfamily int Tod_verify_supplygroup int Tod_verify_partfamilyattribute int Tod_verify_supplygroupattribute int Seq_verify_sequence int Seq_verfiy_partfamily string Seq_verify_carmodelattribute int Reorder_email_alert int Calloff_verify_checksequence int Calloff_verify_orderstatus int Calloff_verify_orderspec int Emailserver_host string Emailserver_port int From_email string From_pwd string Tod_error_to_recievers string Tod_error_cc_recievers string Seq_error_to_recievers string Seq_error_cc_recievers string Reorder_picktemplateid string Reorder_pickorder_snr string Reorder_error_to_recievers string Reorder_error_cc_recievers string Calloff_error_to_recievers string Calloff_error_cc_recievers string Log_url string Log_table string Custorder_snr string Workorder_snr string Manualwo_snr string Ordermsg_snr string Reorder_snr string Shippack_snr string Shippacksync_snr string Shipcar_snr string Asn_file_prefix string Asn_snr string Asn_pfmapper string Asn_file_type string Asn_folder string Backflush_folder string Shipfile_folder string Tier2_folder string Shipfile_snr string Lastmodif string Lastuser string Credatuz string } func (t *Me_project) Clipped() { common.TrimStruct(t, *t) } func (t *Me_project) TableName() string { return "me_project" } //增 func (t *Me_project) Add() error { e := G_DbEngine projtab := new(Me_project) affw, err := e.Table("me_project").ID(core.PK{G_FINR, t.Projectid}).Count(projtab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = e.Table("me_project").Insert(t) if err != nil { return err } return nil } //删 func (t *Me_project) Del() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Projectid}).Delete(&Me_project{}) if err != nil { return false } return true } //改 func (t *Me_project) Update() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Projectid}).Update(t) if err != nil { return false } return true } //查 func (t *Me_project) SelectOne() (data Me_project, err error) { e := G_DbEngine _, err = e.ID(core.PK{G_FINR, t.Projectid}).Get(&data) if err != nil { return data, err } return data, nil } //查 func (t *Me_project) SelectOneBySession(session *xorm.Session, ) (data Me_project, err error) { _, err = session.ID(core.PK{G_FINR, t.Projectid}).Get(&data) if err != nil { return data, err } return data, nil } //获取所有激活的项目数据 func (t *Me_project) GetAllActive() (datalst []Me_project, err error) { e := G_DbEngine if err = e.Where("finr = ? and enabled = ?", G_FINR, 1).OrderBy("projectid").Find(&datalst); err != nil { return } for i, _ := range datalst { datalst[i].Clipped() } return } // 获取项目未解析且客户订单解析状态为IT或RC的Landing数据 func (t *Me_project) GetProjectUnparsedCOV() (datalist []VCustorderVer, err error) { e := G_DbEngine datalist = make([]VCustorderVer, 0) if err = e.Table("pln_custorder_ver").Alias("cov").Join("INNER", []string{"pln_custorder", "co"}, "cov.finr = co.finr and cov.custordernr = co.custordernr").Where("cov.finr = ? and cov.parsed = ? and co.handlestatus != ? and co.projnr = ?", G_FINR, 0, common.CO_PARSE_STATUS_ERROR, t.Projectid).OrderBy("cov.custordernr, cov.version").Find(&datalist); err != nil { return } return } // 确认项目是否需要重载TOD/SEQ/REORDER/CALLOFF 解析用主数据 //func (t *Me_project) NeedToReloadMasterData(ediMode string) (bReload bool, err error) { // var projecttab Me_project // // if projecttab, err = t.SelectOne(); err != nil { // return // } // // bReload = false // // switch ediMode { // case common.EDI_TOD: // if projecttab.Reload_tod_masterdata > 0 { // bReload = true // } // case common.EDI_SEQ: // if projecttab.Reload_seq_masterdata > 0 { // bReload = true // } // case common.EDI_REORDER: // if projecttab.Reload_reorder_masterdata > 0 { // bReload = true // } // case common.EDI_CALLOFF: // if projecttab.Reload_calloff_masterdata > 0 { // bReload = true // } // default: // return // } // // return //} // 重置项目重载TOD/SEQ/REORDER/CALLOFF 主数据标志 func (t *Me_project) ResetReloadFlagBySession(session *xorm.Session, ediMode string) (err error) { var fields string switch ediMode { case common.EDI_TOD: fields = "reload_tod_masterdata, lastmodif" case common.EDI_SEQ: fields = "reload_seq_masterdata, lastmodif" case common.EDI_REORDER: fields = "reload_reorder_masterdata, lastmodif" case common.EDI_CALLOFF: fields = "reload_calloff_masterdata, lastmodif" default: return } if _, err = session.Table("jit_shiporder").ID(core.PK{G_FINR, t.Projectid}).Cols(fields).Update(t); err != nil { return } return }