package supplierfile import ( "dashoo.cn/backend/api/business/oilsupplier/tableheader" "reflect" "strconv" "strings" "dashoo.cn/backend/api/business/oilsupplier/basisbuild" "dashoo.cn/backend/api/business/oilsupplier/goodsaptitude" "dashoo.cn/backend/api/business/oilsupplier/suppliercertsub" "dashoo.cn/backend/api/business/oilsupplier/technologyservice" . "dashoo.cn/backend/api/mydb" //"dashoo.cn/utils" //. "dashoo.cn/utils/db" "github.com/go-xorm/xorm" ) type SupplierfileService struct { MyServiceBase } type FileList struct { FileName string } func GetSupplierfileService(xormEngine *xorm.Engine) *SupplierfileService { s := new(SupplierfileService) s.DBE = xormEngine return s } func (s *SupplierfileService) GetGoodsNeedFileList(classid string,IsManuf ...string) (needList []FileList) { Ids := strings.Split(classid, ",") search := "" if len(IsManuf) == 0 { search = "" } else { search = IsManuf[0] } for i := 0; i < len(Ids); i++ { classid = Ids[i] var entity goodsaptitude.OilGoodsAptitude sql := "select * from OilGoodsAptitude where ClassId in (" + classid + ")" s.DBE.Sql(sql).Get(&entity) tbHeaderSvc := tableheader.GetTableHeaderService(s.DBE) var headerList []tableheader.BaseTableheader tbHeaderSvc.ListGoodTableHeader(&headerList) for _, header := range headerList { curCertConfig := reflect.ValueOf(entity) setValue := curCertConfig.FieldByName(header.Code).String() if setValue != "" && setValue != "0" { if search != "" { if header.IsManuf == search || header.IsManuf == "0" { needList = append(needList, FileList{FileName: header.Name}) } } else { needList = append(needList, FileList{FileName: header.Name}) } } } } return needList } func (s *SupplierfileService) GetBasicNeedFileList(classid string) (needList []FileList) { var entity basisbuild.OilBasisBuild sql := "select * from OilBasisBuild where Id in (" + classid + ")" s.DBE.Sql(sql).Get(&entity) tbHeaderSvc := tableheader.GetTableHeaderService(s.DBE) var headerList []tableheader.BaseTableheader tbHeaderSvc.ListBbTableHeader(&headerList) for _, header := range headerList { curCertConfig := reflect.ValueOf(entity) setValue := curCertConfig.FieldByName(header.Code).String() if setValue != "" && setValue != "0" { needList = append(needList, FileList{FileName: header.Name}) } } return needList } func (s *SupplierfileService) GetTechNeedFileList(classid string) (needList []FileList) { var entity technologyservice.OilTechnologyService sql := "select * from OilTechnologyService where ClassId in (" + classid + ")" s.DBE.Sql(sql).Get(&entity) tbHeaderSvc := tableheader.GetTableHeaderService(s.DBE) var headerList []tableheader.BaseTableheader tbHeaderSvc.ListTsTableHeader(&headerList) for _, header := range headerList { curCertConfig := reflect.ValueOf(entity) setValue := curCertConfig.FieldByName(header.Code).String() if setValue != "" && setValue != "0" { needList = append(needList, FileList{FileName: header.Name}) } } return needList } //查看是否为制造商 func (s *SupplierfileService) CheckIsManuf(id string) (IsManufacturer string) { var entity suppliercertsub.OilSupplierCertSub sql := "select * from OilSupplierCertSub where id = " + id s.DBE.Sql(sql).Get(&entity) IsManufacturer = strconv.Itoa(entity.IsManufacturer) return IsManufacturer } /** func (s *SupplierfileService) GetAllowCertItemList(supplierId, supplierTypeCode string) (goodsClassList []goodsaptitudeclass.OilGoodsAptitudeClass) { // 查询出已有哪些资质 var tableheaderList []tableheader.BaseTableheader fileSql := "SELECT b.* from OilSupplierFile a LEFT JOIN Base_TableHeader b on a.NeedFileType=b.Name AND a.SupplierTypeCode=b.CategoryCode WHERE a.SupplierId='"+ supplierId +"' AND (a.SupplierTypeCode='" + supplierTypeCode + "' or a.SupplierTypeCode='000')" s.DBE.SQL(fileSql).Find(&tableheaderList) var needHeaders string for _, tableheader := range tableheaderList { needHeaders += tableheader.Code + "," } // 获取符合资质的列表树 sql := "SELECT a.* FROM OilGoodsAptitudeClass a LEFT JOIN OilGoodsAptitude b ON a.Id=b.ClassId WHERE 1=1" var i int for i=1; i<=46; i++ { fileNo := fmt.Sprintf("%02d", i) fileNo = "F" + fileNo ret := strings.ContainsAny(needHeaders, fileNo + ",") if !ret { sql += " AND (" + fileNo + " = '' or " + fileNo + " is null)" } else { sql += " AND " + fileNo + " = '1' or " + fileNo + " is null)" } } s.DBE.SQL(sql).Find(&goodsClassList) return goodsClassList } */