package samplesinfo import ( "dashoo.cn/backend/api/business/samplesapply" "encoding/json" "fmt" "strconv" "strings" "time" "dashoo.cn/backend/api/business/approveinfo" "dashoo.cn/backend/api/business/samplesubpackage" . "dashoo.cn/backend/api/controllers" "dashoo.cn/business2/organize" "dashoo.cn/business2/permission" "dashoo.cn/business2/userRole" "github.com/astaxie/beego" // "dashoo.cn/backend/api/business/currboxcapacity" "dashoo.cn/backend/api/business/coderule" "dashoo.cn/backend/api/business/equipment" // "dashoo.cn/backend/api/business/listextend" "dashoo.cn/backend/api/business/printscheme" "dashoo.cn/backend/api/business/samplenoteitem" "dashoo.cn/backend/api/business/sampleorgan" "dashoo.cn/backend/api/business/samplesbusiness" "dashoo.cn/backend/api/business/samplesfileinfo" "dashoo.cn/backend/api/business/samplesinfo" "dashoo.cn/backend/api/business/sampletype" "dashoo.cn/backend/api/business/shelfset" "dashoo.cn/backend/api/business/stypenoteitem" "dashoo.cn/backend/api/mydb" "dashoo.cn/utils" "github.com/tealeg/xlsx" ) type SamplesinputController struct { BaseController } type FilePath struct { Path string `json:"path"` } type PID struct { Pid string `json:"Pid"` } type ModelFenZhuang struct { SampleType int NewsBarCode []ModeFenZhuangValue CapacityUsed string NewCapacity []ModeFenZhuangValue Loadnum int FreezingNum bool FenZhuangRadio int OpDesc string } type ModeFenZhuangValue struct { Value interface{} `json:"value"` } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /list [get] func (this *SamplesinputController) List() { page := this.GetPageInfoForm() svc := samplesinfo.GetSamplesInfoService(utils.DBE) where := " IState =1 and DeletionStateCode=0 " //设备权限 svcPermission := permission.GetPermissionService(utils.DBE) eids := svcPermission.GetEquipmentIdById(utils.ToStr(this.User.Id)) userSvc := userRole.GetUserService(utils.DBE) organizeSvc := organize.GetOrganizeService(utils.DBE) departList := organizeSvc.GetChildByTopId(this.User.DepartmentId) //取出当前部门及下级部门的所有用户列表 var subUserList []userRole.Base_User whereUser := " 1=1 " whereUser += " and DepartmentId in (" + departList + ")" userSvc.GetEntities(&subUserList, whereUser) var userIds string for _, tmpUser := range subUserList { userIds += strconv.Itoa(tmpUser.Id) + "," } userIds = strings.Trim(userIds, ",") if eids != "" { where = where + " and (f.CreateUserId in (" + userIds + ")" + " or a.EquipmentId in (" + eids + "))" } else { where = where + "and f.CreateUserId in (" + userIds + ")" } // if eids != "" { // where = where + " and (f.CreateUserId= " + utils.ToStr(this.User.Id) + " or a.EquipmentId in (" + eids + "))" // } else { // where = where + "and f.CreateUserId= " + utils.ToStr(this.User.Id) // } sampleCode := this.GetString("SampleCode") if sampleCode != "" { where = where + " and a.SampleCode like '%" + sampleCode + "%' " } barCode := this.GetString("BarCode") if barCode != "" { where = where + " and a.BarCode like '%" + barCode + "%' " } name := this.GetString("Name") if name != "" { where = where + " and b.Name ='" + name + "'" } sampletype := this.GetString("SampleType") stnotevalue := this.GetString("Stnotevalue") //特有扩展检索值 stnote := this.GetStrings("STNoteField[]") //特有扩展名称 if sampletype != "" { where = where + " and b.SampleType =" + sampletype + "" if j := len(stnote); j > 0 && stnotevalue != "" { tysql := "" for i := 0; i < j; i++ { if tysql == "" { tysql = " b." + stnote[i] + " like '%" + stnotevalue + "%' " } else { tysql += " or b." + stnote[i] + " like '%" + stnotevalue + "%' " } } where = where + " and (" + tysql + ") " } } SampleTypeName := this.GetString("SampleTypeName") if SampleTypeName != "" { where = where + " and b.SampleTypeName like '%" + SampleTypeName + "%' " } SamplingOrgan := this.GetString("SamplingOrgan") if SamplingOrgan != "" { where = where + " and SamplingOrgan ='" + SamplingOrgan + "'" } SamplingSite := this.GetString("SamplingSite") if SamplingSite != "" { where = where + " and SamplingSite ='" + SamplingSite + "'" } CreateOnstart, _ := this.GetInt64("CreateOnstart") if CreateOnstart != 0 { where = where + " and a.CreateOn >'" + time.Unix(CreateOnstart, 0).Format("2006-01-02") + "'" } CreateOnend, _ := this.GetInt64("CreateOnend") if CreateOnend != 0 { where = where + " and a.CreateOn <'" + time.Unix(CreateOnend, 0).Format("2006-01-02") + " 23:59:59'" } Validitystart, _ := this.GetInt64("Validitystart") if Validitystart != 0 { where = where + " and a.ValidityDate >'" + time.Unix(Validitystart, 0).Format("2006-01-02") + "'" } Validityend, _ := this.GetInt64("Validityend") if Validityend != 0 { where = where + " and a.ValidityDate <'" + time.Unix(Validityend, 0).Format("2006-01-02") + " 23:59:59'" } innercode := this.GetString("InnerCode") if innercode != "" { where = where + " and a.InnerCode ='" + innercode + "'" } cellmakerid := this.GetString("cellmakerid") if cellmakerid != "" { where = where + " and a.CellmakerId =" + cellmakerid } createby := this.GetString("CreateBy") if createby != "" { where = where + "and a.CreateBy ='" + createby + "'" } groupname := this.GetString("GroupName") if groupname != "" { where = where + "and g.GroupName like '%" + groupname + "%' " } noteitemvalue := this.GetString("Noteitemvalue") //公共扩展检索值 noteitem1 := this.GetStrings("Noteitem[]") //公共扩展名称 if j := len(noteitem1); j > 0 && noteitemvalue != "" { tysql := "" for i := 0; i < j; i++ { if tysql == "" { tysql = " b." + noteitem1[i] + " like '%" + noteitemvalue + "%' " } else { tysql += " or b." + noteitem1[i] + " like '%" + noteitemvalue + "%' " } } where = where + " and (" + tysql + ") " } //支持从样本来源详情处跳转 ssouceid := this.GetString("sourceid") if ssouceid != "" { where = where + " and SourceId = " + ssouceid + "" } donorname := this.GetString("SourceName") if donorname != "" { where = where + " and (SourceName like '%" + donorname + "%' or SourceIdCard like '%" + donorname + "%')" } var list []samplesinfo.SamplesInfoList total, list := svc.GetPagingEntitiesWithOrderSearch(this.User.AccCode, page.CurrentPage, page.Size, "Id desc", where) var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /animallist [get] func (this *SamplesinputController) AnimalList() { page := this.GetPageInfoForm() svc := samplesinfo.GetSamplesInfoService(utils.DBE) where := " IState =1 and DeletionStateCode=0 " //设备权限 svcPermission := permission.GetPermissionService(utils.DBE) eids := svcPermission.GetEquipmentIdById(utils.ToStr(this.User.Id)) if eids != "" { where = where + " and (f.CreateUserId= " + utils.ToStr(this.User.Id) + " or a.EquipmentId in (" + eids + "))" } else { where = where + "and f.CreateUserId= " + utils.ToStr(this.User.Id) } sampleCode := this.GetString("SampleCode") if sampleCode != "" { where = where + " and a.SampleCode like '%" + sampleCode + "%' " } barCode := this.GetString("BarCode") if barCode != "" { where = where + " and a.BarCode like '%" + barCode + "%' " } name := this.GetString("Name") if name != "" { where = where + " and b.Name ='" + name + "'" } sampletype := this.GetString("SampleType") stnotevalue := this.GetString("Stnotevalue") //特有扩展检索值 stnote := this.GetStrings("STNoteField") //特有扩展名称 if sampletype != "" { where = where + " and b.SampleType = '" + sampletype + "'" if j := len(stnote); j > 0 && stnotevalue != "" { tysql := "" for i := 0; i < j; i++ { if tysql == "" { tysql = " b." + stnote[i] + " like '%" + stnotevalue + "%' " } else { tysql += " or b." + stnote[i] + " like '%" + stnotevalue + "%' " } } where = where + " and (" + tysql + ") " } } SampleTypeName := this.GetString("SampleTypeName") if SampleTypeName != "" { where = where + " and b.SampleTypeName like '%" + SampleTypeName + "%' " } CreateOnstart, _ := this.GetInt64("CreateOnstart") if CreateOnstart != 0 { where = where + " and a.CreateOn >'" + time.Unix(CreateOnstart, 0).Format("2006-01-02") + "'" } CreateOnend, _ := this.GetInt64("CreateOnend") if CreateOnend != 0 { where = where + " and a.CreateOn <'" + time.Unix(CreateOnend, 0).Format("2006-01-02") + " 23:59:59'" } Validitystart, _ := this.GetInt64("Validitystart") if Validitystart != 0 { where = where + " and a.ValidityDate >'" + time.Unix(Validitystart, 0).Format("2006-01-02") + "'" } Validityend, _ := this.GetInt64("Validityend") if Validityend != 0 { where = where + " and a.ValidityDate <'" + time.Unix(Validityend, 0).Format("2006-01-02") + " 23:59:59'" } innercode := this.GetString("InnerCode") if innercode != "" { where = where + " and a.InnerCode ='" + innercode + "'" } createby := this.GetString("CreateBy") if createby != "" { where = where + "and a.CreateBy ='" + createby + "'" } groupname := this.GetString("GroupName") if groupname != "" { where = where + "and g.GroupName like '%" + groupname + "%' " } //支持从样本来源详情处跳转 ssouceid := this.GetString("sourceid") if ssouceid != "" { where = where + " and SourceId = " + ssouceid + "" } donorname := this.GetString("SourceName") if donorname != "" { where = where + " and SourceName like '%" + donorname + "%'" } var list []samplesinfo.SamplesInfoList total, list := svc.GetPagingEntitiesWithTb(this.User.AccCode, page.CurrentPage, page.Size, this.User.AccCode+AnimaltbName, "Id desc", where) var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /getlist [get] func (this *SamplesinputController) GetList() { svc := samplesinfo.GetSamplesInfoService(utils.DBE) //设备权限 svcPermission := permission.GetPermissionService(utils.DBE) eids := svcPermission.GetEquipmentIdById(utils.ToStr(this.User.Id)) where := " IState =1 and DeletionStateCode=0 " if eids != "" { where = where + " and (f.CreateUserId= " + utils.ToStr(this.User.Id) + " or a.EquipmentId in (" + eids + "))" } else { where = where + "and f.CreateUserId= " + utils.ToStr(this.User.Id) } equipmentId := this.GetString("EquipmentId") if equipmentId != "" { where = where + " and a.EquipmentId like '%" + equipmentId + "%' " } sampletype := this.GetString("SampleType") stnotevalue := this.GetString("Stnotevalue") //特有扩展检索值 stnote := this.GetStrings("STNoteField[]") //特有扩展名称 if sampletype != "" { where = where + " and b.SampleType =" + sampletype + "" if j := len(stnote); j > 0 && stnotevalue != "" { tysql := "" for i := 0; i < j; i++ { if tysql == "" { tysql = " b." + stnote[i] + " like '%" + stnotevalue + "%' " } else { tysql += " or b." + stnote[i] + " like '%" + stnotevalue + "%' " } } where = where + " and (" + tysql + ") " } } CreateOnstart, _ := this.GetInt64("CreateOnstart") if CreateOnstart != 0 { where = where + " and a.CreateOn >'" + time.Unix(CreateOnstart, 0).Format("2006-01-02") + "'" } CreateOnend, _ := this.GetInt64("CreateOnend") if CreateOnend != 0 { where = where + " and a.CreateOn <'" + time.Unix(CreateOnend, 0).Format("2006-01-02") + " 23:59:59'" } createby := this.GetString("CreateBy") if createby != "" { where = where + " and a.CreateBy ='" + createby + "'" } noteitemvalue := this.GetString("Noteitemvalue") //公共扩展检索值 noteitem1 := this.GetStrings("Noteitem[]") //公共扩展名称 if j := len(noteitem1); j > 0 && noteitemvalue != "" { tysql := "" for i := 0; i < j; i++ { if tysql == "" { tysql = " b." + noteitem1[i] + " like '%" + noteitemvalue + "%' " } else { tysql += " or b." + noteitem1[i] + " like '%" + noteitemvalue + "%' " } } where = where + " and (" + tysql + ") " } page := this.GetString("SamplePage") size := this.GetString("TestNum") var list []samplesinfo.SamplesInfoList total, list := svc.GetPagingEntitiesSearch(this.User.AccCode, page, size, "Position desc", where) var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /getsamplelist [get] func (this *SamplesinputController) GetSampleList() { page := this.GetPageInfoForm() svc := samplesinfo.GetSamplesInfoService(utils.DBE) where := " IState =1 and DeletionStateCode=0 " //设备权限 svcs := equipment.GetEquipmentService(utils.DBE) poweeids := svcs.GetPowerEquipmentids(this.User.AccCode, utils.ToStr(this.User.Id)) where = where + " and a.EquipmentId in(" + strings.Join(poweeids, ",") + ")" barCode := this.GetString("BarCode") if barCode != "" { arr := strings.Split(barCode, ",") for i := 0; i < len(arr); i++ { arr[i] = "'" + arr[i] + "'" } where = where + " and a.BarCode in (" + strings.Join(arr, ",") + ") " } var list []samplesinfo.SamplesInfoList total, list := svc.GetPagingEntitiesWithOrderSearch(this.User.AccCode, page.CurrentPage, page.Size, "Id desc", where) var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /slist/:id [get] func (this *SamplesinputController) ListbyEquipment() { id := this.Ctx.Input.Param(":id") svc := permission.GetPermissionService(utils.DBE) var list []sampletype.SampleType var entity equipment.Equipment where := " AccCode='" + this.User.AccCode + "' and Id=" + utils.ToStr(id) svc.GetEntity(&entity, where) serial := strings.Split(entity.SampleType, ",") where = "Id=" for i := 0; i < len(serial); i++ { if i == len(serial)-1 { where = where + serial[i] } else { where = where + serial[i] + " or Id=" } } svc.GetEntities(&list, where) // for j := 0; j < len(list); j++ { // println("ss============-=-=-=-=-=-=-=-=-=-=-", list[j].Code) // } var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = int64(len(list)) this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 样本类型 // @router /getsampletype [get] func (this *SamplesinputController) GetSampletype() { //样本类型 var entity []sampletype.SampleType sample_type := sampletype.GetSampleTypeService(utils.DBE) where2 := " AccCode='" + this.User.AccCode + "'" entity = sample_type.ListSampleType(where2) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 样本类型 // @router /getspecial [get] func (this *SamplesinputController) Stypenoteitem() { SampleType := this.GetString("SampleType") svc := stypenoteitem.GetSTypenoteitemService(utils.DBE) AccCode := this.User.AccCode where := "AccCode='" + AccCode + "'and SampleType='" + SampleType + "'" data := svc.GetSTypenoteitemSearch(where) this.Data["json"] = data this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 公共扩展 // @router /getpublicsampletype [get] func (this *SamplesinputController) GetPublicSampletype() { //公共扩展list var entity []samplenoteitem.SamplesNoteItem svcdnote := samplenoteitem.GetSampleNoteItemService(utils.DBE) wherenote := " AccCode='" + this.User.AccCode + "'" entity = svcdnote.GetDNoteItemList(wherenote) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 样本公共扩展 // @router /getpublicsampletypedata [get] func (this *SamplesinputController) GetPublicSampletypeData() { svc := samplenoteitem.GetSampleNoteItemService(utils.DBE) where := " AccCode='" + this.User.AccCode + "'" entity := svc.GetDNoteItemList(where) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 打印列表 // @router /getprintschemelist [get] func (this *SamplesinputController) GetPrintSchemeList() { var entity []printscheme.PrintScheme svcprint := printscheme.GetPrintSchemeService(utils.DBE) where1 := " Funcode = '样本' and AccCode = '" + this.User.AccCode + "' " entity = svcprint.GetPrintSchemeList(where1) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 样本取用记录 // @router /getusedrecord [get] func (this *SamplesinputController) GetUsedRecord() { page := this.GetPageInfoForm() barCode := this.GetString("BarCode") var entity []samplesbusiness.SamplesBusiness wherebuss := " BarCode='" + barCode + "'" svcsample := samplesinfo.GetSamplesInfoService(utils.DBE) total := svcsample.GetPagingEntitiesWithOrderBytbl(this.User.AccCode, page.CurrentPage, page.Size, "Id ", true, &entity, wherebuss) var datainfo DataInfo datainfo.Items = entity datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 相关样本 // @router /getrelationSamples [get] func (this *SamplesinputController) GetRelationSamples() { barCode := this.GetString("BarCode") sampleCode := this.GetString("SampleCode") svcsample := samplesinfo.GetSamplesInfoService(utils.DBE) var entity []samplesinfo.SamplesDetail whereother := " SampleCode='" + sampleCode + "' and DeletionStateCode = 0 and BarCode <> '" + barCode + "'" svcsample.GetEntitysByWhere(this.User.AccCode+SamplesDetailtbName, whereother, &entity) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 组织器官 // @router /getoperations [get] func (this *SamplesinputController) GetOperation() { //绑定组织器官 svcOrgan := sampleorgan.GetSampleOrganService(utils.DBE) where := "where AccCode = '" + this.User.AccCode + "' and Item=1 " entity := svcOrgan.GetTreeList(where) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 组织器官 // @router /getsamplesite [get] func (this *SamplesinputController) GetSamplesite() { tnode := this.GetString("TNode") var entity []sampleorgan.SampleOrgan svc := sampleorgan.GetSampleOrganService(utils.DBE) // orgTNodeParent := svc.GetEntityIdByName(this.User.AccCode, tnode) where := " AccCode='" + this.User.AccCode + "' and Item=2 and TNodeParent='" + tnode + "'" entity = svc.GetEntityListByWhere(where) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 已录入样本编辑 // @router /edit/:id [get] func (this *SamplesinputController) Edit() { id := this.Ctx.Input.Param(":id") var entity samplesinfo.SamplesInfoShow svc := samplesinfo.GetSamplesInfoService(utils.DBE) where := " Id=" + id + " and IState =1 and DeletionStateCode =0 " entity = svc.QuerySampleEntity(this.User.AccCode, where) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title get--Animla // @Description get SampleType by token // @Success 200 已录入样本编辑 // @router /editanimal/:id [get] func (this *SamplesinputController) EditAnimal() { id := this.Ctx.Input.Param(":id") var entity samplesinfo.AnimalSamplesInfoShow svc := samplesinfo.GetSamplesInfoService(utils.DBE) where := " a.Id=" + id + " and IState =1 and DeletionStateCode =0 " entity = svc.QueryAnimalSampleEntity(this.User.AccCode, where) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title put // @Description get SampleType by token // @Success 200 已录入样本编辑 // @router /edit/:id [put] func (this *SamplesinputController) EditPost() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo var err error if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var model samplesinfo.SamplesMD var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) svcSample := samplesinfo.GetSamplesInfoService(utils.DBE) var datamain samplesinfo.SamplesMain json.Unmarshal(jsonblob, &datamain) // this.ParseForm(&datamain) //把页面内容传下来 datamain.Name = model.Name datamain.MModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datamain.MModifiedBy = this.User.Realname var cols []string = []string{"Name", "MModifiedUserId", "MModifiedBy"} zback := svcSample.QueryZBackList(this.User.AccCode) for i := 0; i < (len(zback)); i++ { cols = append(cols, zback[i].Id) } var datadetail samplesinfo.SamplesDetail datadetail.InnerCode = model.InnerCode datadetail.Remark = model.Remark datadetail.ModifiedBy = this.User.Realname datadetail.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() var colsdetail []string = []string{"ModifiedUserId", "ModifiedBy", "InnerCode", "Remark"} err = svcSample.UpdateSample(this.User.AccCode+SamplesMaintbName, model.MId, &datamain, cols) err = svcSample.UpdateSample(this.User.AccCode+SamplesDetailtbName, id, &datadetail, colsdetail) if err == nil { var sampleshowold samplesinfo.SamplesInfoShow where := " BarCode='" + model.BarCode + "' and DeletionStateCode =0 " sampleshowold = svcSample.QuerySampleEntity(this.User.AccCode, where) svcSample.WriteSampleLog(this.User.AccCode+SamplesLogtbName, sampleshowold.Id, sampleshowold.MId, &sampleshowold, utils.ToStr(this.User.Id), this.User.Realname, this.User.AccCode, sampleshowold.SampleCode, sampleshowold.BarCode, sampleshowold.SampleType) errinfo.Message = "保存成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title get // @Description get SampleType by token // @Success 200 已录入样本详细信息 // @router /detailed/:id [get] func (this *SamplesinputController) Detailed() { id := this.Ctx.Input.Param(":id") where := " a.Id=" + id + "" svcsample := samplesinfo.GetSamplesInfoService(utils.DBE) entity := svcsample.QuerySampleDetailEntity(this.User.AccCode, where) var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } // @Title 删除 // @Description 删除 // @Param id path string true "需要删除的用户编号" // @Success 200 {object} ErrorInfo // @Failure 403 :id 为空 // @router /:id [delete] func (this *SamplesinputController) Delete() { id := this.Ctx.Input.Param(":id") sampletype := this.GetString("sampletype") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var entity samplesinfo.SamplesDetail where := " Id=" + id + "" svc := samplesinfo.GetSamplesInfoService(utils.DBE) svc.GetEntityByWhere(this.User.AccCode+SamplesDetailtbName, where, &entity) // 写删除日志 var sampleshowold samplesinfo.SamplesInfoShow wherelog := " Id='" + id + "' and DeletionStateCode =0 " sampleshowold = svc.QuerySampleEntity(this.User.AccCode, wherelog) svc.WriteDeleteSampleLog(this.User.AccCode+SamplesLogtbName, sampleshowold.Id, sampleshowold.MId, &sampleshowold, utils.ToStr(this.User.Id), this.User.Realname, this.User.AccCode, sampleshowold.SampleCode, sampleshowold.BarCode, sampleshowold.SampleType) err := svc.DeleteDetail(this.User.AccCode+SamplesDetailtbName, where) var databuss samplesbusiness.SamplesBusiness //业务记录 databuss.AccCode = this.User.AccCode databuss.CapacityUsed = entity.Capacity databuss.CapacityRest = entity.Capacity databuss.OpType = 42 databuss.SampleCode = entity.SampleCode databuss.BarCode = entity.BarCode databuss.SampleType, _ = utils.StrTo(sampletype).Int() databuss.Unit = entity.Unit databuss.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databuss.CreateBy = this.User.Realname svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databuss) if err == nil { errinfo.Message = "删除成功" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 复苏 // @Description 复苏 // @Param body body business.device.DeviceChannels "传感器信息" // @Success 200 {object} controllers.Request // @router /fusu/:id [put] func (this *SamplesinputController) FuSuEditPost() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "复苏操作失败!参数不合法!" errinfo.Code = -3 this.Data["json"] = &errinfo this.ServeJSON() return } var model samplesbusiness.SamplesFuSu var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) var dataold samplesinfo.SamplesDetail //原始样本 where := " Id=" + id + "" svc := samplesinfo.GetSamplesInfoService(utils.DBE) svc.GetEntityByWhere(this.User.AccCode+SamplesDetailtbName, where, &dataold) // spreequimentId := utils.ToStr(dataold.EquipmentId) // oldshelfid := utils.ToStr(dataold.ShelfId) // oldboxid := utils.ToStr(dataold.BoxId) // oldposition := dataold.Position fusu := utils.ToStr(model.FusuRadio) quyong, _ := utils.StrTo(model.CapacityUsed).Float32() //取用容量 var currCapacity float64 currCapacity = FloatPoint(float64(dataold.Capacity-quyong), 4) //取用后容量 var currFreezingNum int //冻融次数 if model.FreezingNum { currFreezingNum = dataold.FreezingNum + 1 } else { currFreezingNum = dataold.FreezingNum } //fusu 1复苏直接复存 2再次存入不保留位置 3归档 4存到预录入 5再次存入保留位置 //11复苏复存12复苏至待复存(不保留位置)13复苏至归档14复苏至预录入 15复苏至待复存(保留位置) var optype int if fusu == "1" { optype = 11 } else if fusu == "2" { optype = 12 } else if fusu == "3" { optype = 13 } else if fusu == "4" { optype = 14 } else if fusu == "5" { optype = 15 } var err error var entity samplesbusiness.SamplesBusiness //业务记录 entity.AccCode = this.User.AccCode entity.SampleCode = dataold.SampleCode entity.BarCode = dataold.BarCode entity.Unit = dataold.Unit entity.CapacityUsed = quyong entity.CapacityRest = float32(currCapacity) entity.OpDesc = model.OpDesc entity.OpType = optype entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int() entity.CreateBy = this.User.Realname if fusu != "3" { //除去归档 var datanew samplesinfo.SamplesDetail datanew = dataold var cols []string = []string{"ModifiedUserId", "ModifiedBy", "Capacity", "FreezingNum", "IState"} if fusu == "1" { //复苏复存 datanew.IState = 1 } else if fusu == "2" { //不保留位置,存到待复存中 datanew.IState = 6 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "4" { //存到预录入 datanew.IState = 4 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "5" { //保留位置,存到待复存中 datanew.IState = 5 } datanew.Capacity = float32(currCapacity) datanew.FreezingNum = currFreezingNum datanew.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datanew.ModifiedBy = this.User.Realname entity.EquipmentId = datanew.EquipmentId entity.ShelfId = datanew.ShelfId entity.BoxId = datanew.BoxId entity.Position = datanew.Position entity.PositionDesc = svc.GetPostiondescByPosId(datanew.EquipmentId, datanew.ShelfId, datanew.BoxId, datanew.Position) err = svc.UpdateDetailAndBuss(this.User.AccCode+SamplesDetailtbName, this.User.AccCode+SamplesBusstbName, id, &datanew, &entity, cols) } else { //归档 entity.EquipmentId = 0 entity.ShelfId = 0 entity.BoxId = 0 entity.Position = "" entity.PositionDesc = "" var datafiledetail samplesfileinfo.SamplesFileDetail datafiledetail.SampleCode = dataold.SampleCode datafiledetail.BarCode = dataold.BarCode datafiledetail.InnerCode = dataold.InnerCode datafiledetail.InitCapacity = dataold.InitCapacity datafiledetail.Capacity = float32(currCapacity) datafiledetail.Unit = dataold.Unit datafiledetail.FreezingNum = currFreezingNum datafiledetail.ValidityDate = dataold.ValidityDate datafiledetail.ParentBarCode = dataold.ParentBarCode datafiledetail.IType = dataold.IType datafiledetail.CreateOn = dataold.CreateOn datafiledetail.CreateBy = dataold.CreateBy datafiledetail.CreateUserId = dataold.CreateUserId datafiledetail.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datafiledetail.ModifiedBy = this.User.Realname datafiledetail.ModifiedOn = time.Now() datafiledetail.Remark = dataold.Remark svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailFiletbName, &datafiledetail) svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &entity) svc.DelSDetailInfo(this.User.AccCode, dataold.Id) } //是否有审批权限 svcpermission := permission.GetPermissionService(utils.DBE) if svcpermission.IsAuthorized(utils.ToStr(this.User.Id), "WaterDrop.Home.approve") { approveperson := this.GetString("ApprovePerson") ckno := time.Now().Format("20060102 15:04:05") ckno = strings.Replace(ckno, " ", "", -1) ckno = strings.Replace(ckno, ":", "", -1) ckno = ckno + utils.ToStr(time.Now().Nanosecond()) var approveentity approveinfo.ApproveInfo svcapprove := approveinfo.GetApproveInfoService(utils.DBE) approveentity.AccCode = this.User.AccCode approveentity.CKNo = ckno approveentity.CKInfo = "样本复苏审批" approveentity.BarCode = entity.BarCode approveentity.ToUserId, _ = utils.StrTo(approveperson).Int() approveentity.SendDate = time.Now() approveentity.ApproveState = 0 approveentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int() approveentity.CreateBy = this.User.Realname svcapprove.InsertEntity(&approveentity) } if err == nil { errinfo.Message = "复苏操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() return } else { errinfo.Message = "复苏操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } // @Title 批量复苏 // @Description 批量复苏 // @Param body body business.device.DeviceChannels "传感器信息" // @Success 200 {object} controllers.Request // @router /batchfusu [put] func (this *SamplesinputController) BatchFuSuEditPost() { ids := this.GetString("ids") idsarr := strings.Split(ids, ",") var errinfo ErrorInfo if len(idsarr) == 0 { errinfo.Message = "批量复苏操作失败!参数不合法!" errinfo.Code = -3 this.Data["json"] = &errinfo this.ServeJSON() return } var err error var model samplesbusiness.SamplesFuSu var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) for i := 0; i < len(idsarr); i++ { if idsarr[i] != "" { var dataold samplesinfo.SamplesDetail //原始样本 where := " Id=" + idsarr[i] + "" svc := samplesinfo.GetSamplesInfoService(utils.DBE) svc.GetEntityByWhere(this.User.AccCode+SamplesDetailtbName, where, &dataold) // spreequimentId := utils.ToStr(dataold.EquipmentId) // oldshelfid := utils.ToStr(dataold.ShelfId) // oldboxid := utils.ToStr(dataold.BoxId) // oldposition := dataold.Position fusu := utils.ToStr(model.FusuRadio) quyong, _ := utils.StrTo(model.CapacityUsed).Float32() //取用容量 var currCapacity float64 currCapacity = FloatPoint(float64(dataold.Capacity-quyong), 4) //取用后容量 var currFreezingNum int //冻融次数 if model.FreezingNum { currFreezingNum = dataold.FreezingNum + 1 } else { currFreezingNum = dataold.FreezingNum } //fusu 1复苏直接复存 2再次存入不保留位置 3归档 4存到预录入 5再次存入保留位置 //11复苏复存12复苏至���复存(不保留位置)13复苏至归档14复苏至预录入 15复苏至待复存(保留位置) var optype int if fusu == "1" { optype = 11 } else if fusu == "2" { optype = 12 } else if fusu == "3" { optype = 13 } else if fusu == "4" { optype = 14 } else if fusu == "5" { optype = 15 } var entity samplesbusiness.SamplesBusiness //业务记录 entity.AccCode = this.User.AccCode entity.SampleCode = dataold.SampleCode entity.BarCode = dataold.BarCode entity.Unit = dataold.Unit entity.CapacityUsed = quyong entity.CapacityRest = float32(currCapacity) entity.OpDesc = model.OpDesc entity.OpType = optype entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int() entity.CreateBy = this.User.Realname //对于SampleDetail的修改仅仅修改IState=10 //修改SampleDetail=10 var datanew samplesinfo.SamplesDetail var cols []string = []string{"FreezingNum", "IState"} datanew=dataold datanew.FreezingNum = currFreezingNum datanew.IState=10 svc.UpdateEntityBytbl(this.User.AccCode+SamplesDetailtbName,dataold.Id,&datanew,cols) if fusu != "3" { //除去归档 entity.EquipmentId = datanew.EquipmentId entity.ShelfId = datanew.ShelfId entity.BoxId = datanew.BoxId entity.Position = datanew.Position entity.PositionDesc = svc.GetPostiondescByPosId(datanew.EquipmentId, datanew.ShelfId, datanew.BoxId, datanew.Position) } else { //归档 entity.EquipmentId = 0 entity.ShelfId = 0 entity.BoxId = 0 entity.Position = "" entity.PositionDesc = "" } //insert 业务记录到SamplesBusiness svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &entity) var samplesapplyDataInfo samplesapply.SamplesApplyDetail //复苏类型 samplesapplyDataInfo.RecoveryId=model.FusuRadio //在出库的时候会和出库单建立关系 samplesapplyDataInfo.ParentId=0 samplesapplyDataInfo.SampleCode=dataold.SampleCode samplesapplyDataInfo.BarCode=dataold.BarCode samplesapplyDataInfo.InitCapacity=dataold.InitCapacity samplesapplyDataInfo.Capacity=quyong samplesapplyDataInfo.Unit=dataold.Unit samplesapplyDataInfo.CreateOn=dataold.CreateOn samplesapplyDataInfo.CreateBy=dataold.CreateBy samplesapplyDataInfo.CreateUserId=dataold.CreateUserId samplesapplyDataInfo.ModifiedUserId=dataold.ModifiedUserId samplesapplyDataInfo.ModifiedBy = this.User.Realname samplesapplyDataInfo.ModifiedOn = time.Now() samplesapplyDataInfo.EquipmentId=dataold.EquipmentId samplesapplyDataInfo.ShelfId=dataold.ShelfId samplesapplyDataInfo.BoxId=dataold.BoxId samplesapplyDataInfo.Position=dataold.Position //样本选定人 samplesapplyDataInfo.CHUserBy=this.User.Realname //样本选定人ID chUserId,_:=strconv.Atoi(this.User.Id) samplesapplyDataInfo.CHUserId=chUserId var samplesInfoShow samplesinfo.SamplesInfoShow sql:=" a.SampleCode='"+dataold.SampleCode+"'" samplesInfoShow=svc.QuerySampleEntity(this.User.AccCode,sql) samplesapplyDataInfo.SampleType=samplesInfoShow.SampleType samplesapplyDataInfo.SampleTypeName=samplesInfoShow.SampleTypeName //状态0:申请;1:已审核 samplesapplyDataInfo.DetailStatus=0 //生成样本出库详情 svc.InsertEntityBytbl(this.User.AccCode+SamplesApplyDetailName,&samplesapplyDataInfo) //是否有审批权限 svcpermission := permission.GetPermissionService(utils.DBE) if svcpermission.IsAuthorized(utils.ToStr(this.User.Id), "WaterDrop.Home.approve") { approveperson := this.GetString("ApprovePerson") ckno := time.Now().Format("20060102 15:04:05") ckno = strings.Replace(ckno, " ", "", -1) ckno = strings.Replace(ckno, ":", "", -1) ckno = ckno + utils.ToStr(time.Now().Nanosecond()) var approveentity approveinfo.ApproveInfo svcapprove := approveinfo.GetApproveInfoService(utils.DBE) approveentity.AccCode = this.User.AccCode approveentity.CKNo = ckno approveentity.CKInfo = "样本复苏审批" approveentity.BarCode = dataold.BarCode approveentity.ToUserId, _ = utils.StrTo(approveperson).Int() approveentity.SendDate = time.Now() approveentity.ApproveState = 0 approveentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int() approveentity.CreateBy = this.User.Realname svcapprove.InsertEntity(&approveentity) } } } if err == nil { errinfo.Message = "批量复苏操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() return } else { errinfo.Message = "批量复苏操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } func (this *SamplesinputController) AutoCode() { var coderule_list []coderule.CodeRule var coderuledetail_list []coderule.CodeRuleDetail var entity coderule.CodeRuleAutoCode svc_coderule := coderule.GetCodeRuleService(utils.DBE) where2 := " AccCode='" + this.User.AccCode + "' and IsDefault=1" coderule_list = svc_coderule.GetCodeRuleList(where2) coderule_samplingorgan_flag := 0 coderule_sampletype_flag := 0 if len(coderule_list) == 1 { where := " AccCode='" + this.User.AccCode + "' and MainId=" + utils.ToStr(coderule_list[0].Id) coderuledetail_list = svc_coderule.GetCodeRuleDetailOrderList(where, "SortCode") count := len(coderuledetail_list) for i := 0; i < count; i++ { if coderuledetail_list[i].ItemName == "样本类型" { entity.CodeRule_SampleType_Flag = 1 } else if coderuledetail_list[i].ItemName == "组织器官" { entity.CodeCRule_SamplingOrgan_Flag = 1 } } entity.Code_CodeId = coderule_list[0].Id } else { entity.Code_CodeId = 0 } entity.CodeRule_SampleType_Flag = coderule_samplingorgan_flag entity.CodeCRule_SamplingOrgan_Flag = coderule_sampletype_flag var datainfo DataInfo datainfo.Items = entity this.Data["json"] = &datainfo this.ServeJSON() } func IsHaveSampleDetailBarcoder(value, acccode string) bool { svc := samplesinfo.GetSamplesInfoService(utils.DBE) where := " DeletionStateCode=0 and BarCode = '" + value + "'" tablename1 := acccode + SamplesDetailtbName has := svc.QuerySampleInfoHas(tablename1, where) if has { return true } else { tablename2 := acccode + SamplesDetailFiletbName have := svc.QuerySampleInfoHas(tablename2, where) if have { return true } else { return false } } } // @Title 分装 // @Description 创建样本类型 // @Param body body business.device.DeviceChannels "传感器信息" // @Success 200 {object} controllers.Request // @router /fenzhuang/:id [put] func (this *SamplesinputController) FenZhuangPost() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "样本分装操作失败!参数不合法!" errinfo.Code = -3 this.Data["json"] = &errinfo this.ServeJSON() return } var model ModelFenZhuang //samplesbusiness.SamplesFenZhuang var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) if len(model.NewCapacity) != len(model.NewsBarCode) { errinfo.Message = "样本分装操作失败!请求参数有误!" errinfo.Code = -4 this.Data["json"] = &errinfo this.ServeJSON() return } //验证条码是否存在 for _, v := range model.NewsBarCode { if utils.ToStr(v.Value) != "" { if IsHaveSampleDetailBarcoder(utils.ToStr(v.Value), this.User.AccCode) { errinfo.Message = "样本分装操作失败!样本条码 " + utils.ToStr(v.Value) + " 重复!" errinfo.Code = -5 this.Data["json"] = &errinfo this.ServeJSON() return } } } var dataold samplesinfo.SamplesDetail //原始样本 where := " Id=" + id + "" svc := samplesinfo.GetSamplesInfoService(utils.DBE) svc.GetEntityByWhere(this.User.AccCode+SamplesDetailtbName, where, &dataold) // spreequimentId := utils.ToStr(dataold.EquipmentId) // oldshelfid := utils.ToStr(dataold.ShelfId) // oldboxid := utils.ToStr(dataold.BoxId) // oldposition := dataold.Position //添加新样本 var datachild samplesinfo.SamplesDetail //新样本 var databusschild samplesbusiness.SamplesBusiness //业务记录 // this.ParseForm(&databusschild) //把页面内容传下来 databusschild.SampleType = model.SampleType databusschild.OpDesc = model.OpDesc databusschild.AccCode = this.User.AccCode databusschild.SampleCode = dataold.SampleCode databusschild.Unit = dataold.Unit databusschild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databusschild.CreateBy = this.User.Realname var err error newsampleinfoarr := model.NewCapacity newsampleinfoarrvals := model.NewsBarCode for k, _ := range newsampleinfoarr { datachild.IState = 7 datachild.SampleCode = dataold.SampleCode if val := strings.Trim(utils.ToStr(newsampleinfoarrvals[k].Value), " "); val != "" { datachild.BarCode = val } else { datachild.BarCode = svc.AutoGetBarCode(this.User.AccCode, dataold.SampleCode) } datachild.InitCapacity, _ = utils.StrTo(utils.ToStr(newsampleinfoarr[k].Value)).Float32() datachild.Capacity, _ = utils.StrTo(utils.ToStr(newsampleinfoarr[k].Value)).Float32() datachild.FreezingNum = 0 datachild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() datachild.CreateBy = this.User.Realname datachild.CreateOn = time.Now() datachild.ModifiedBy = "" datachild.ModifiedUserId = 0 datachild.ModifiedOn = time.Now() datachild.ParentBarCode = dataold.BarCode datachild.IType = 1 datachild.Unit = dataold.Unit datachild.ValidityDate = dataold.ValidityDate _, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailtbName, &datachild) databusschild.BarCode = datachild.BarCode databusschild.CapacityUsed = datachild.Capacity databusschild.CapacityRest = datachild.Capacity databusschild.OpType = 5 svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databusschild) } fusu := utils.ToStr(model.FenZhuangRadio) quyong, _ := utils.StrTo(model.CapacityUsed).Float32() //取用容量 var currCapacity float64 currCapacity = FloatPoint(float64(dataold.Capacity-quyong), 4) //取用后容量 var currFreezingNum int //冻融次数 if model.FreezingNum { currFreezingNum = dataold.FreezingNum + 1 } else { currFreezingNum = dataold.FreezingNum } //fusu 1复苏直接复存 2再次存入不保留位置 3归档 4存到预录入 5再次存入保留位置 //11复苏复存12复苏至待复存(不保留位置)13复苏至归档14复苏至预录入 15复苏至待复存(保留位置) var optype int if fusu == "1" { optype = 21 } else if fusu == "2" { optype = 22 } else if fusu == "3" { optype = 23 } else if fusu == "4" { optype = 24 } else if fusu == "5" { optype = 25 } var databuss samplesbusiness.SamplesBusiness //业务记录 // this.ParseForm(&databuss) //把页面内容传下来 databuss.SampleType = model.SampleType databuss.OpDesc = model.OpDesc databuss.AccCode = this.User.AccCode databuss.SampleCode = dataold.SampleCode databuss.BarCode = dataold.BarCode databuss.Unit = dataold.Unit databuss.CapacityUsed = quyong databuss.CapacityRest = float32(currCapacity) databuss.OpType = optype databuss.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databuss.CreateBy = this.User.Realname if fusu != "3" { //除去归档 var datanew samplesinfo.SamplesDetail datanew = dataold var cols []string = []string{"ModifiedUserId", "ModifiedBy", "Capacity", "FreezingNum", "IState"} if fusu == "1" { //复苏复存 datanew.IState = 1 } else if fusu == "2" { //不保留位置,存到待复存中 datanew.IState = 6 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "4" { //存到预录入 datanew.IState = 4 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "5" { //保留位置,存到待复存中 datanew.IState = 5 } datanew.Capacity = float32(currCapacity) datanew.FreezingNum = currFreezingNum datanew.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datanew.ModifiedBy = this.User.Realname databuss.EquipmentId = datanew.EquipmentId databuss.ShelfId = datanew.ShelfId databuss.BoxId = datanew.BoxId databuss.Position = datanew.Position databuss.PositionDesc = svc.GetPostiondescByPosId(datanew.EquipmentId, datanew.ShelfId, datanew.BoxId, datanew.Position) err = svc.UpdateDetailAndBuss(this.User.AccCode+SamplesDetailtbName, this.User.AccCode+SamplesBusstbName, dataold.Id, &datanew, &databuss, cols) } else { //归档 databuss.EquipmentId = 0 databuss.ShelfId = 0 databuss.BoxId = 0 databuss.Position = "" databuss.PositionDesc = "" var datafiledetail samplesfileinfo.SamplesFileDetail datafiledetail.SampleCode = dataold.SampleCode datafiledetail.BarCode = dataold.BarCode datafiledetail.InnerCode = dataold.InnerCode datafiledetail.InitCapacity = dataold.InitCapacity datafiledetail.Capacity = float32(currCapacity) datafiledetail.Unit = dataold.Unit datafiledetail.FreezingNum = currFreezingNum datafiledetail.ValidityDate = dataold.ValidityDate datafiledetail.ParentBarCode = dataold.ParentBarCode datafiledetail.IType = dataold.IType datafiledetail.CreateOn = dataold.CreateOn datafiledetail.CreateBy = dataold.CreateBy datafiledetail.CreateUserId = dataold.CreateUserId datafiledetail.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datafiledetail.ModifiedBy = this.User.Realname datafiledetail.ModifiedOn = time.Now() datafiledetail.Remark = dataold.Remark svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailFiletbName, &datafiledetail) svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databuss) svc.DelSDetailInfo(this.User.AccCode, dataold.Id) } if err == nil { errinfo.Message = "样本分装操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() return } else { errinfo.Message = "样本分装操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } // @Title 分装 // @Description 创建样本类型 // @Param body body business.device.DeviceChannels "传感器信息" // @Success 200 {object} controllers.Request // @router /fenzhuangbee/:id [put] func (this *SamplesinputController) FenZhuangBee() { id := this.Ctx.Input.Param(":id") timecode := this.GetString("timecode") var errinfo ErrorInfo if id == "" { errinfo.Message = "样本分装操作失败!参数不合法!" errinfo.Code = -3 this.Data["json"] = &errinfo this.ServeJSON() return } var model ModelFenZhuang //samplesbusiness.SamplesFenZhuang var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) if len(model.NewCapacity) != len(model.NewsBarCode) { errinfo.Message = "样本分装操作失败!请求参数有误!" errinfo.Code = -4 this.Data["json"] = &errinfo this.ServeJSON() return } //验证条码是否存在 for _, v := range model.NewsBarCode { if utils.ToStr(v.Value) != "" { if IsHaveSampleDetailBarcoder(utils.ToStr(v.Value), this.User.AccCode) { errinfo.Message = "样本分装操作失败!样本条码 " + utils.ToStr(v.Value) + " 重复!" errinfo.Code = -5 this.Data["json"] = &errinfo this.ServeJSON() return } } } var dataold samplesinfo.SamplesDetail //原始样本 where := " Id=" + id + "" svc := samplesinfo.GetSamplesInfoService(utils.DBE) svc.GetEntityByWhere(this.User.AccCode+SamplesDetailtbName, where, &dataold) //添加新样本 var datachild samplesinfo.SamplesDetail //新样本 var databusschild samplesbusiness.SamplesBusiness //业务记录 // this.ParseForm(&databusschild) //把页面内容传下来 databusschild.SampleType = model.SampleType databusschild.OpDesc = model.OpDesc databusschild.AccCode = this.User.AccCode databusschild.SampleCode = dataold.SampleCode databusschild.Unit = dataold.Unit databusschild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databusschild.CreateBy = this.User.Realname var err error newsampleinfoarr := model.NewCapacity newsampleinfoarrvals := model.NewsBarCode for k, _ := range newsampleinfoarr { datachild.IState = 7 datachild.SampleCode = dataold.SampleCode if val := strings.Trim(utils.ToStr(newsampleinfoarrvals[k].Value), " "); val != "" { datachild.BarCode = val } else { subSvc := samplesubpackage.GetSampleSubpackageService(utils.DBE) datachild.BarCode = subSvc.AutoGetBarCodeAnimal(this.User.AccCode, dataold.SampleCode, timecode) } datachild.InitCapacity, _ = utils.StrTo(utils.ToStr(newsampleinfoarr[k].Value)).Float32() datachild.Capacity, _ = utils.StrTo(utils.ToStr(newsampleinfoarr[k].Value)).Float32() datachild.FreezingNum = 0 datachild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() datachild.CreateBy = this.User.Realname datachild.CreateOn = time.Now() datachild.ModifiedBy = "" datachild.ModifiedUserId = 0 datachild.ModifiedOn = time.Now() datachild.ParentBarCode = dataold.BarCode datachild.IType = 1 datachild.Unit = dataold.Unit datachild.ValidityDate = dataold.ValidityDate _, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailtbName, &datachild) databusschild.BarCode = datachild.BarCode databusschild.CapacityUsed = datachild.Capacity databusschild.CapacityRest = datachild.Capacity databusschild.OpType = 5 svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databusschild) } fusu := utils.ToStr(model.FenZhuangRadio) quyong, _ := utils.StrTo(model.CapacityUsed).Float32() //取用容量 var currCapacity float64 currCapacity = FloatPoint(float64(dataold.Capacity-quyong), 4) //取用后容量 var currFreezingNum int //冻融次数 if model.FreezingNum { currFreezingNum = dataold.FreezingNum + 1 } else { currFreezingNum = dataold.FreezingNum } //fusu 1复苏直接复存 2再次存入不保留位置 3归档 4存到预录入 5再次存入保留位置 //11复苏复存12复苏至待复存(不保留位置)13复苏至归档14复苏至预录入 15复苏至待复存(保留位置) var optype int if fusu == "1" { optype = 21 } else if fusu == "2" { optype = 22 } else if fusu == "3" { optype = 23 } else if fusu == "4" { optype = 24 } else if fusu == "5" { optype = 25 } var databuss samplesbusiness.SamplesBusiness //业务记录 // this.ParseForm(&databuss) //把页面内容传下来 databuss.SampleType = model.SampleType databuss.OpDesc = model.OpDesc databuss.AccCode = this.User.AccCode databuss.SampleCode = dataold.SampleCode databuss.BarCode = dataold.BarCode databuss.Unit = dataold.Unit databuss.CapacityUsed = quyong databuss.CapacityRest = float32(currCapacity) databuss.OpType = optype databuss.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databuss.CreateBy = this.User.Realname if fusu != "3" { //除去归档 var datanew samplesinfo.SamplesDetail datanew = dataold var cols []string = []string{"ModifiedUserId", "ModifiedBy", "Capacity", "FreezingNum", "IState"} if fusu == "1" { //复苏复存 datanew.IState = 1 } else if fusu == "2" { //不保留位置,存到待复存中 datanew.IState = 6 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "4" { //存到预录入 datanew.IState = 4 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "5" { //保留位置,存到待复存中 datanew.IState = 5 } datanew.Capacity = float32(currCapacity) datanew.FreezingNum = currFreezingNum datanew.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datanew.ModifiedBy = this.User.Realname databuss.EquipmentId = datanew.EquipmentId databuss.ShelfId = datanew.ShelfId databuss.BoxId = datanew.BoxId databuss.Position = datanew.Position databuss.PositionDesc = svc.GetPostiondescByPosId(datanew.EquipmentId, datanew.ShelfId, datanew.BoxId, datanew.Position) err = svc.UpdateDetailAndBuss(this.User.AccCode+SamplesDetailtbName, this.User.AccCode+SamplesBusstbName, dataold.Id, &datanew, &databuss, cols) } else { //归档 databuss.EquipmentId = 0 databuss.ShelfId = 0 databuss.BoxId = 0 databuss.Position = "" databuss.PositionDesc = "" var datafiledetail samplesfileinfo.SamplesFileDetail datafiledetail.SampleCode = dataold.SampleCode datafiledetail.BarCode = dataold.BarCode datafiledetail.InnerCode = dataold.InnerCode datafiledetail.InitCapacity = dataold.InitCapacity datafiledetail.Capacity = float32(currCapacity) datafiledetail.Unit = dataold.Unit datafiledetail.FreezingNum = currFreezingNum datafiledetail.ValidityDate = dataold.ValidityDate datafiledetail.ParentBarCode = dataold.ParentBarCode datafiledetail.IType = dataold.IType datafiledetail.CreateOn = dataold.CreateOn datafiledetail.CreateBy = dataold.CreateBy datafiledetail.CreateUserId = dataold.CreateUserId datafiledetail.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datafiledetail.ModifiedBy = this.User.Realname datafiledetail.ModifiedOn = time.Now() datafiledetail.Remark = dataold.Remark svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailFiletbName, &datafiledetail) svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databuss) svc.DelSDetailInfo(this.User.AccCode, dataold.Id) } if err == nil { errinfo.Message = "样本分装操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() return } else { errinfo.Message = "样本分装操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } // @Title 提取 // @Description 创建样本类型 // @Param body body business.device.DeviceChannels "传感器信息" // @Success 200 {object} controllers.Request // @router /tiqubee/:id [put] func (this *SamplesinputController) TiQuBee() { id := this.Ctx.Input.Param(":id") timecode := this.GetString("timecode") var errinfo ErrorInfo if id == "" { errinfo.Message = "样本提取操作失败!参数不合法!" errinfo.Code = -3 this.Data["json"] = &errinfo this.ServeJSON() return } var model samplesbusiness.SamplesTiQu var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) var dataold samplesinfo.SamplesDetail //原始样本 where := " Id=" + id + "" svc := samplesinfo.GetSamplesInfoService(utils.DBE) svc.GetEntityByWhere(this.User.AccCode+SamplesDetailtbName, where, &dataold) var datamainold samplesinfo.SamplesMain //原始样本 where = " SampleCode='" + dataold.SampleCode + "'" svc.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, where, &datamainold) //添加新样本 var datachild samplesinfo.SamplesDetail //新样本 var datachildmain samplesinfo.SamplesMain datachildmain = datamainold var databusschild samplesbusiness.SamplesBusiness //业务记录 databusschild.SampleType = model.SampleType databusschild.OpDesc = model.OpDesc databusschild.AccCode = this.User.AccCode databusschild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databusschild.CreateBy = this.User.Realname var err error datachild.IState = 8 if model.NewsBarCode != "" { datachild.BarCode = model.NewsBarCode } else { subSvc := samplesubpackage.GetSampleSubpackageService(utils.DBE) datachild.BarCode = subSvc.AutoGetBarCodeAnimal(this.User.AccCode, model.NewsSampleCode, timecode) } datachildmain.SampleCode = model.NewsSampleCode // datachildmain.SampleTypeName = newsampleinfoarrvals[2] //获取样本名字 sample_type := sampletype.GetSampleTypeService(utils.DBE) datachildmain.SampleTypeName = sample_type.GetSampleNameByCode("AccCode='" + this.User.AccCode + "' and Code ='" + datachildmain.SampleCode + "'") datachildmain.SampleType, _ = utils.StrTo(model.NewsSampleType).Int() datachildmain.MCreateUserId, _ = utils.StrTo(this.User.Id).Int() datachildmain.MCreateBy = this.User.Realname datachildmain.MCreateOn = time.Now() datachildmain.MModifiedBy = "" datachildmain.MModifiedUserId = 0 datachildmain.MModifiedOn = time.Now() datachild.SampleCode = model.NewsSampleCode datachild.InitCapacity, _ = utils.StrTo(model.NewCapacity).Float32() datachild.Capacity, _ = utils.StrTo(model.NewCapacity).Float32() datachild.Unit = model.NewsUnit datachild.FreezingNum = 0 datachild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() datachild.CreateBy = this.User.Realname datachild.CreateOn = time.Now() datachild.ModifiedBy = "" datachild.ModifiedUserId = 0 datachild.ModifiedOn = time.Now() datachild.ParentBarCode = dataold.BarCode datachild.IType = 2 datachild.ValidityDate = dataold.ValidityDate _, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesMaintbName, &datachildmain) _, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailtbName, &datachild) databusschild.SampleCode = datachild.SampleCode databusschild.Unit = datachild.Unit databusschild.BarCode = datachild.BarCode databusschild.CapacityUsed = datachild.Capacity databusschild.CapacityRest = datachild.Capacity databusschild.SampleType = datachildmain.SampleType databusschild.OpType = 6 svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databusschild) fusu := utils.ToStr(model.TiQuRadio) quyong, _ := utils.StrTo(model.CapacityUsed).Float32() //取用容量 var currCapacity float64 currCapacity = FloatPoint(float64(dataold.Capacity-quyong), 4) //取用后容量 var currFreezingNum int //冻融次数 if model.FreezingNum { currFreezingNum = dataold.FreezingNum + 1 } else { currFreezingNum = dataold.FreezingNum } //fusu 1复苏直接复存 2再次存入不保留位置 3归档 4存到预录入 5再次存入保留位置 //11复苏复存12复苏至待复存(不保留位置)13复苏至归档14复苏至预录入 15复苏至待复存(保留位置) var optype int if fusu == "1" { optype = 31 } else if fusu == "2" { optype = 32 } else if fusu == "3" { optype = 33 } else if fusu == "4" { optype = 34 } else if fusu == "5" { optype = 35 } var databuss samplesbusiness.SamplesBusiness //业务记录 // this.ParseForm(&databuss) //把页面内容传下来 databuss.SampleType = model.SampleType databuss.OpDesc = model.OpDesc databuss.AccCode = this.User.AccCode databuss.SampleCode = dataold.SampleCode databuss.BarCode = dataold.BarCode databuss.Unit = dataold.Unit databuss.CapacityUsed = quyong databuss.CapacityRest = float32(currCapacity) databuss.OpType = optype databuss.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databuss.CreateBy = this.User.Realname if fusu != "3" { //除去归档 var datanew samplesinfo.SamplesDetail datanew = dataold var cols []string = []string{"ModifiedUserId", "ModifiedBy", "Capacity", "FreezingNum", "IState"} if fusu == "1" { //复苏复存 datanew.IState = 1 } else if fusu == "2" { //不保留位置,存到待复存中 datanew.IState = 6 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "4" { //存到预录入 datanew.IState = 4 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "5" { //保留位置,存到待复存中 datanew.IState = 5 } datanew.Capacity = float32(currCapacity) datanew.FreezingNum = currFreezingNum datanew.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datanew.ModifiedBy = this.User.Realname databuss.EquipmentId = datanew.EquipmentId databuss.ShelfId = datanew.ShelfId databuss.BoxId = datanew.BoxId databuss.Position = datanew.Position databuss.PositionDesc = svc.GetPostiondescByPosId(datanew.EquipmentId, datanew.ShelfId, datanew.BoxId, datanew.Position) err = svc.UpdateDetailAndBuss(this.User.AccCode+SamplesDetailtbName, this.User.AccCode+SamplesBusstbName, dataold.Id, &datanew, &databuss, cols) } else { //归档 databuss.EquipmentId = 0 databuss.ShelfId = 0 databuss.BoxId = 0 databuss.Position = "" databuss.PositionDesc = "" var datafiledetail samplesfileinfo.SamplesFileDetail datafiledetail.SampleCode = dataold.SampleCode datafiledetail.BarCode = dataold.BarCode datafiledetail.InnerCode = dataold.InnerCode datafiledetail.InitCapacity = dataold.InitCapacity datafiledetail.Capacity = float32(currCapacity) datafiledetail.Unit = dataold.Unit datafiledetail.FreezingNum = currFreezingNum datafiledetail.ValidityDate = dataold.ValidityDate datafiledetail.ParentBarCode = dataold.ParentBarCode datafiledetail.IType = dataold.IType datafiledetail.CreateOn = dataold.CreateOn datafiledetail.CreateBy = dataold.CreateBy datafiledetail.CreateUserId = dataold.CreateUserId datafiledetail.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datafiledetail.ModifiedBy = this.User.Realname datafiledetail.ModifiedOn = time.Now() datafiledetail.Remark = dataold.Remark svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailFiletbName, &datafiledetail) svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databuss) svc.DelSDetailInfo(this.User.AccCode, dataold.Id) } if err == nil { errinfo.Message = "样本提取操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() return } else { errinfo.Message = "样本提取操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } // @Title 提取 // @Description 创建样本类型 // @Param body body business.device.DeviceChannels "传感器信息" // @Success 200 {object} controllers.Request // @router /tiqu/:id [put] func (this *SamplesinputController) TiQuEditPost() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "样本提取操作失败!参数不合法!" errinfo.Code = -3 this.Data["json"] = &errinfo this.ServeJSON() return } var model samplesbusiness.SamplesTiQu var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) var dataold samplesinfo.SamplesDetail //原始样本 where := " Id=" + id + "" svc := samplesinfo.GetSamplesInfoService(utils.DBE) svc.GetEntityByWhere(this.User.AccCode+SamplesDetailtbName, where, &dataold) var datamainold samplesinfo.SamplesMain //原始样本 where = " SampleCode='" + dataold.SampleCode + "'" svc.GetEntityByWhere(this.User.AccCode+SamplesMaintbName, where, &datamainold) //添加新样本 var datachild samplesinfo.SamplesDetail //新样本 var datachildmain samplesinfo.SamplesMain datachildmain = datamainold var databusschild samplesbusiness.SamplesBusiness //业务记录 databusschild.SampleType = model.SampleType databusschild.OpDesc = model.OpDesc databusschild.AccCode = this.User.AccCode databusschild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databusschild.CreateBy = this.User.Realname var err error datachild.IState = 8 if model.NewsBarCode != "" { datachild.BarCode = model.NewsBarCode } else { datachild.BarCode = svc.AutoGetBarCode(this.User.AccCode, model.NewsSampleCode) } datachildmain.SampleCode = model.NewsSampleCode // datachildmain.SampleTypeName = newsampleinfoarrvals[2] //获取样本名字 sample_type := sampletype.GetSampleTypeService(utils.DBE) datachildmain.SampleTypeName = sample_type.GetSampleNameByCode("AccCode='" + this.User.AccCode + "' and Code ='" + datachildmain.SampleCode + "'") datachildmain.SampleType, _ = utils.StrTo(model.NewsSampleType).Int() datachildmain.MCreateUserId, _ = utils.StrTo(this.User.Id).Int() datachildmain.MCreateBy = this.User.Realname datachildmain.MCreateOn = time.Now() datachildmain.MModifiedBy = "" datachildmain.MModifiedUserId = 0 datachildmain.MModifiedOn = time.Now() datachild.SampleCode = model.NewsSampleCode datachild.InitCapacity, _ = utils.StrTo(model.NewCapacity).Float32() datachild.Capacity, _ = utils.StrTo(model.NewCapacity).Float32() datachild.Unit = model.NewsUnit datachild.FreezingNum = 0 datachild.CreateUserId, _ = utils.StrTo(this.User.Id).Int() datachild.CreateBy = this.User.Realname datachild.CreateOn = time.Now() datachild.ModifiedBy = "" datachild.ModifiedUserId = 0 datachild.ModifiedOn = time.Now() datachild.ParentBarCode = dataold.BarCode datachild.IType = 2 datachild.ValidityDate = dataold.ValidityDate _, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesMaintbName, &datachildmain) _, err = svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailtbName, &datachild) databusschild.SampleCode = datachild.SampleCode databusschild.Unit = datachild.Unit databusschild.BarCode = datachild.BarCode databusschild.CapacityUsed = datachild.Capacity databusschild.CapacityRest = datachild.Capacity databusschild.SampleType = datachildmain.SampleType databusschild.OpType = 6 svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databusschild) fusu := utils.ToStr(model.TiQuRadio) quyong, _ := utils.StrTo(model.CapacityUsed).Float32() //取用容量 var currCapacity float64 currCapacity = FloatPoint(float64(dataold.Capacity-quyong), 4) //取用后容量 var currFreezingNum int //冻融次数 if model.FreezingNum { currFreezingNum = dataold.FreezingNum + 1 } else { currFreezingNum = dataold.FreezingNum } //fusu 1复苏直接复存 2再次存入不保留位置 3归档 4存到预录入 5再次存入保留位置 //11复苏复存12复苏至待复存(不保留位置)13复苏至归档14复苏至预录入 15复苏至待复存(保留位置) var optype int if fusu == "1" { optype = 31 } else if fusu == "2" { optype = 32 } else if fusu == "3" { optype = 33 } else if fusu == "4" { optype = 34 } else if fusu == "5" { optype = 35 } var databuss samplesbusiness.SamplesBusiness //业务记录 // this.ParseForm(&databuss) //把页面内容传下来 databuss.SampleType = model.SampleType databuss.OpDesc = model.OpDesc databuss.AccCode = this.User.AccCode databuss.SampleCode = dataold.SampleCode databuss.BarCode = dataold.BarCode databuss.Unit = dataold.Unit databuss.CapacityUsed = quyong databuss.CapacityRest = float32(currCapacity) databuss.OpType = optype databuss.CreateUserId, _ = utils.StrTo(this.User.Id).Int() databuss.CreateBy = this.User.Realname if fusu != "3" { //除去归档 var datanew samplesinfo.SamplesDetail datanew = dataold var cols []string = []string{"ModifiedUserId", "ModifiedBy", "Capacity", "FreezingNum", "IState"} if fusu == "1" { //复苏复存 datanew.IState = 1 } else if fusu == "2" { //不保留位置,存到待复存中 datanew.IState = 6 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "4" { //存到预录入 datanew.IState = 4 datanew.EquipmentId = 0 datanew.ShelfId = 0 datanew.BoxId = 0 datanew.Position = "" cols = append(cols, "EquipmentId") cols = append(cols, "ShelfId") cols = append(cols, "BoxId") cols = append(cols, "Position") cols = append(cols, "PositionDesc") } else if fusu == "5" { //保留位置,存到待复存中 datanew.IState = 5 } datanew.Capacity = float32(currCapacity) datanew.FreezingNum = currFreezingNum datanew.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datanew.ModifiedBy = this.User.Realname databuss.EquipmentId = datanew.EquipmentId databuss.ShelfId = datanew.ShelfId databuss.BoxId = datanew.BoxId databuss.Position = datanew.Position databuss.PositionDesc = svc.GetPostiondescByPosId(datanew.EquipmentId, datanew.ShelfId, datanew.BoxId, datanew.Position) err = svc.UpdateDetailAndBuss(this.User.AccCode+SamplesDetailtbName, this.User.AccCode+SamplesBusstbName, dataold.Id, &datanew, &databuss, cols) } else { //归档 databuss.EquipmentId = 0 databuss.ShelfId = 0 databuss.BoxId = 0 databuss.Position = "" databuss.PositionDesc = "" var datafiledetail samplesfileinfo.SamplesFileDetail datafiledetail.SampleCode = dataold.SampleCode datafiledetail.BarCode = dataold.BarCode datafiledetail.InnerCode = dataold.InnerCode datafiledetail.InitCapacity = dataold.InitCapacity datafiledetail.Capacity = float32(currCapacity) datafiledetail.Unit = dataold.Unit datafiledetail.FreezingNum = currFreezingNum datafiledetail.ValidityDate = dataold.ValidityDate datafiledetail.ParentBarCode = dataold.ParentBarCode datafiledetail.IType = dataold.IType datafiledetail.CreateOn = dataold.CreateOn datafiledetail.CreateBy = dataold.CreateBy datafiledetail.CreateUserId = dataold.CreateUserId datafiledetail.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() datafiledetail.ModifiedBy = this.User.Realname datafiledetail.ModifiedOn = time.Now() datafiledetail.Remark = dataold.Remark svc.InsertEntityBytbl(this.User.AccCode+SamplesDetailFiletbName, &datafiledetail) svc.InsertEntityBytbl(this.User.AccCode+SamplesBusstbName, &databuss) svc.DelSDetailInfo(this.User.AccCode, dataold.Id) } if err == nil { errinfo.Message = "样本提取操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() return } else { errinfo.Message = "样本提取操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /saveexcelpost [put] func (this *SamplesinputController) SaveExcelPost() { // svc := samplesinfo.GetSamplesInfoService(utils.DBE) // UID, _ := utils.StrTo(this.User.Id).Int() path := this.GetString("path") var model FilePath var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) fmt.Println("====================================path", model.Path) // err, warn1 := svc.InsertExcelSamplesInput(path, this.User.AccCode, this.User.Realname, UID) // if warn1 == "" && err == nil { // warn1 = "sucess" // } else if err != nil { // warn1 = warn1 + err.Error() // } // this.Data["json"] = warn1 this.Data["json"] = path this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /exportexcel [get] func (this *SamplesinputController) ExportExcel() { accCode := this.User.AccCode ExportFlag := this.GetString("ExportFlag") var filetitle string //文件名 //设备权限 svcPermission := permission.GetPermissionService(utils.DBE) eids := svcPermission.GetEquipmentIdById(utils.ToStr(this.User.Id)) where := "" if ExportFlag == "stored" { //已录入导出 filetitle = "已录入样本" where = " a.IState =1 and a.DeletionStateCode=0 " if eids != "" { where = where + " and (f.CreateUserId= " + utils.ToStr(this.User.Id) + " or a.EquipmentId in (" + eids + "))" } else { where = where + "and f.CreateUserId= " + utils.ToStr(this.User.Id) } } else if ExportFlag == "prerecorded" { //预录入导出 filetitle = "预录入样本" where = " a.IState in (2,3,4,7,8) and a.DeletionStateCode=0 " } else if ExportFlag == "waitingstore" { //待复存导出 filetitle = "待复存样本" if eids != "" { where = where + " and a.DeletionStateCode=0 and (a.IState=6 or ( a.IState=5 and (f.CreateUserId= '" + utils.ToStr(this.User.Id) + "' or a.EquipmentId in (" + eids + ")) ))" } else { where = where + " and a.DeletionStateCode=0 and (a.IState=6 or ( a.IState=5 and f.CreateUserId= '" + utils.ToStr(this.User.Id) + "'))" } } else if ExportFlag == "archived" { //已归档导出 filetitle = "已归档样本" where = " a.DeletionStateCode=0 " } id := this.GetString("Id") if id != "" { where = where + " and a.Id in (" + id + ") " } sampleCode := this.GetString("SampleCode") if sampleCode != "" { where = where + " and a.SampleCode like '%" + sampleCode + "%' " } barCode := this.GetString("BarCode") if barCode != "" { where = where + " and a.BarCode like '%" + barCode + "%' " } name := this.GetString("Name") if name != "" { where = where + " and b.Name ='" + name + "'" } sampletype := this.GetString("SampleType") stnotevalue := this.GetString("Stnotevalue") //特有扩展检索值 stnote := this.GetStrings("STNoteField[]") //特有扩展名称 if sampletype != "" { where = where + " and b.SampleType =" + sampletype + "" if j := len(stnote); j > 0 && stnotevalue != "" { tysql := "" for i := 0; i < j; i++ { if tysql == "" { tysql = " b." + stnote[i] + " like '%" + stnotevalue + "%' " } else { tysql += " or b." + stnote[i] + " like '%" + stnotevalue + "%' " } } where = where + " and (" + tysql + ") " } } CreateOnstart, _ := this.GetInt64("CreateOnstart") if CreateOnstart != 0 { where = where + " and a.CreateOn >'" + time.Unix(CreateOnstart, 0).Format("2006-01-02") + "'" } CreateOnend, _ := this.GetInt64("CreateOnend") if CreateOnend != 0 { where = where + " and a.CreateOn <'" + time.Unix(CreateOnend, 0).Format("2006-01-02") + " 23:59:59'" } Validitystart, _ := this.GetInt64("Validitystart") if Validitystart != 0 { where = where + " and a.ValidityDate >'" + time.Unix(Validitystart, 0).Format("2006-01-02") + "'" } Validityend, _ := this.GetInt64("Validityend") if Validityend != 0 { where = where + " and a.ValidityDate <'" + time.Unix(Validityend, 0).Format("2006-01-02") + " 23:59:59'" } innercode := this.GetString("InnerCode") if innercode != "" { where = where + " and a.InnerCode ='" + innercode + "'" } createby := this.GetString("CreateBy") if createby != "" { where = where + "and a.CreateBy ='" + createby + "'" } //支持从样本来源详情处跳转 ssouceid := this.GetString("sourceid") if ssouceid != "" { where = where + " and SourceId = " + ssouceid + "" } donorname := this.GetString("SourceName") if donorname != "" { where = where + " and (SourceName like '%" + donorname + "%' or SourceIdCard like '%" + donorname + "%')" } svc := samplesinfo.GetSamplesInfoService(utils.DBE) //特有扩展list var tykzlist []stypenoteitem.STypeNoteItem if sampletype != "" { svcty := stypenoteitem.GetSTypenoteitemService(utils.DBE) wheretykz := "AccCode='" + accCode + "'and SampleType='" + sampletype + "'" tykzlist = svcty.GetSTypenoteitemSearch(wheretykz) } var title []string //自定义显示列 showcolumnarr := this.GetString("showcolumnarr") showcolumnnamearr := this.GetString("showcolumnnamearr") titlestring := "" if showcolumnarr == "" { titlestring = "设备ID,设备名称,冻存架ID,冻存架位置,冻存盒ID,冻存盒位置,样本位置,样本编码,样本条码,样本类型名称,名称容量,单位,有效日期,接收日期,录入人,样本来源姓名,样本来源身份证号,备注,样本内码,所属分组" for i := 0; i < (len(tykzlist)); i++ { titlestring = titlestring + "," + tykzlist[i].Name } } else { titlestring = showcolumnnamearr } var datas []samplesinfo.SamplesInfoList title = strings.Split(titlestring, ",") fmt.Println("122222222222222221", title) if ExportFlag == "archived" { //已归档导出 datas = svc.GetArchivedSamplesInfoListAllData(this.User.AccCode, "Id desc", where) } else { datas = svc.GetSamplesInfoListAllData(this.User.AccCode, "Id desc", where) } f := xlsx.NewFile() this.DaySaveXlsx(filetitle, title, showcolumnarr, datas, f, tykzlist) dir := "static/file/excel/report/" + this.GetAccode() SaveDirectory(dir) path := dir + "/" + utils.TimeFormat(time.Now(), "200612") + filetitle + ".xlsx" f.Save(path) this.Data["json"] = this.Ctx.Request.Host + "/" + path this.ServeJSON() } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /exportexcelapply [get] func (this *SamplesinputController) ExportExcelSampleApply() { var title []string var list []samplesapply.Applydetailmodel entryno:=this.GetString("Entryno") fmt.Println(entryno) svc := samplesapply.GetSamplesApplyService(utils.DBE) list=svc.QueryApplySamplesDetail(this.User.AccCode,entryno) var filetitle="出库详情" //文件名 titlestring := "" f := xlsx.NewFile() titlestring="样本条码,样本编码,样本类型,可用容量,存储位置,审核状态,操作人,撤销人" title = strings.Split(titlestring, ",") this.DaySaveXlsxExport(filetitle, title, list, f) SaveDirectory("static/file/excel/report/") f.Save("static/file/excel/report/" + utils.TimeFormat(time.Now(), "200612") + "出库详情.xlsx") this.Ctx.WriteString(this.Ctx.Request.Host + "/static/file/excel/report/" + utils.TimeFormat(time.Now(), "200612") + "出库详情.xlsx") } func (this *SamplesinputController) DaySaveXlsxExport(name string, title []string, datas []samplesapply.Applydetailmodel, f *xlsx.File) { sheet, _ := f.AddSheet(name) rowhead := sheet.AddRow() rowhead.WriteSlice(&title, -1) for _, v := range datas { //strsex := "" //if v.Sex == 0 { // strsex = "男" //} else if v.Sex == 1 { // strsex = "女" //} else { // strsex = "" //} //strmarital := "" //if v.MaritalStatus == 0 { // strmarital = "未婚" //} else if v.MaritalStatus == 1 { // strmarital = "已婚" //} else if v.MaritalStatus == 2 { // strmarital = "未知" //} else { // strmarital = "" //} datastring := v.SampleCode + "," + v.BarCode +","+ v.SampleTypeName +","+ utils.ToStr(v.Capacity) +"," +v.Position + "," + strconv.Itoa(v.DetailStatus) + "," + v.CHUserBy + "," + v.CancelBy cellname := strings.Split(datastring, ",") row := sheet.AddRow() row.WriteSlice(&cellname, -1) } //sheet.Cols[1].Width = 20 //sheet.Cols[4].Width = 20 //sheet.Cols[6].Width = 20 //sheet.Cols[7].Width = 15 //sheet.Cols[8].Width = 20 //sheet.Cols[12].Width = 20 //sheet.Cols[13].Width = 50 //sheet.Cols[14].Width = 30 //sheet.Cols[15].Width = 20 //sheet.Cols[16].Width = 20 //sheet.Cols[17].Width = 20 } func (this *SamplesinputController) DaySaveXlsx(name string, title []string, column string, datas []samplesinfo.SamplesInfoList, f *xlsx.File, tykzlist []stypenoteitem.STypeNoteItem) { sheet, _ := f.AddSheet(name) rowhead := sheet.AddRow() rowhead.WriteSlice(&title, -1) for _, v := range datas { strs := strings.Split(v.Position, ";") if len(strs) != 2 { // continue } datastring := "" //自定义显示列 if column == "" { x := strs[0] y, _ := utils.StrTo(strs[1]).Int() ay := mydb.Boxlinename(y) svc := equipment.GetEquipmentService(utils.DBE) e_code, e_name := svc.GetCodeAndNameById(utils.ToStr(v.EquipmentId)) svc1 := shelfset.GetshelfsetService(utils.DBE) s_x, s_y := svc1.GetStationByShelfId(utils.ToStr(v.ShelfId)) ss_y := mydb.Boxlinename(s_y) b_x, b_y := svc1.GetStationByBoxId(utils.ToStr(v.BoxId)) sb_y := mydb.Boxlinename(b_y) datastring = utils.ToStr(v.EquipmentId) + "," + e_code + e_name + "," + utils.ToStr(v.ShelfId) + "," + ss_y + ";" + utils.ToStr(s_x) + "," + utils.ToStr(v.BoxId) + "," + sb_y + ";" + utils.ToStr(b_x) + "," + ay + ";" + x + "," + v.SampleCode + "," + v.BarCode + "," + v.SampleTypeName + "," + v.Name + "," + utils.ToStr(v.Capacity) + "," + v.Unit + "," + utils.ToStr(v.ValidityDate.Format("2006-1-2 15:4:5")) + "," + utils.ToStr(v.ReceiveDate.Format("2006-1-2 15:4:5")) + "," + v.CreateBy + "," + v.SourceName + "," + v.SourceIdCard + "," + v.Remark + "," + v.InnerCode + "," + v.GroupName for i := 0; i < (len(tykzlist)); i++ { datastring = datastring + "," + mydb.GetKuoZhan(v, tykzlist[i].FieldName) } } else { columnarr := strings.Split(column, ",") for i := 0; i < len(columnarr); i++ { fvalue := "" if columnarr[i] == "Location" { pos := strings.Split(v.Position, ";") position := v.Position if len(pos) == 2 { posyint, _ := utils.StrTo(pos[1]).Int() position = NumtoUpChar(posyint) + pos[0] } shelfyint, _ := utils.StrTo(v.ShelfY).Int() boxyint, _ := utils.StrTo(v.BoxY).Int() fvalue = fmt.Sprintf("%v-%v%v-%v%v-%v", v.ECode, NumtoUpChar(shelfyint), v.ShelfX, NumtoUpChar(boxyint), v.BoxX, position) } else { if columnarr[i] != "" { fvalue = mydb.GetKuoZhan(v, columnarr[i]) if columnarr[i] == "ValidityDate" || columnarr[i] == "ReceiveDate" { if strings.Index(fvalue, "0001") == 0 { fvalue = "----" } else if strings.Index(fvalue, "5000") == 0 { fvalue = "永久" } } fvalue = strings.Replace(fvalue, ",", ",", -1) } else { } } if i == 0 { datastring = fvalue } else { datastring = datastring + "," + fvalue } } } cellname := strings.Split(datastring, ",") row := sheet.AddRow() row.WriteSlice(&cellname, -1) } for c, cl := 0, len(sheet.Cols); c < cl; c++ { sheet.Cols[c].Width = 20 } } // @Title 获取预录入列表 // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /getlistajax [get] func (this *SamplesinputController) Listajax() { page := this.GetPageInfoForm() barcode := this.GetString("barcode") samplecode := this.GetString("samplecode") name := this.GetString("name") operator := this.GetString("operator") sampletype := this.GetString("sampletype") ReceiveDate := this.GetString("ReceiveDate") where := " IState in (2,3,4,7,8) and DeletionStateCode=0 " if barcode != "" { where = where + " and a.BarCode like '%" + barcode + "%' " } if samplecode != "" { where = where + " and a.SampleCode like '%" + samplecode + "%' " } if name != "" { where = where + " and b.Name like '%" + name + "%' " } if operator != "" { where = where + " and a.CreateBy like '%" + operator + "%' " } if sampletype != "" { where = where + " and b.SampleType = '" + sampletype + "' " } if ReceiveDate != "" { dates := strings.Split(ReceiveDate, ",") if len(dates) == 2 { minDate := dates[0] maxDate := dates[1] where = where + " and ReceiveDate>='" + minDate + "' and ReceiveDate<='" + maxDate + "'" } } svc := samplesinfo.GetSamplesInfoService(utils.DBE) var samplespre []samplesinfo.SamplesInfoList total, samplespre := svc.GetPagingEntitiesWithTb(this.User.AccCode, page.CurrentPage, page.Size, this.User.AccCode+AnimaltbName, "a.Id desc", where) var datainfo DataInfo datainfo.Items = samplespre datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取预录入列表 // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /getlistdonors [get] func (this *SamplesinputController) ListDonors() { page := this.GetPageInfoForm() barcode := this.GetString("barcode") samplecode := this.GetString("samplecode") name := this.GetString("name") operator := this.GetString("operator") sampletype := this.GetString("sampletype") ReceiveDate := this.GetString("ReceiveDate") where := " IState in (2,3,4,7,8) and DeletionStateCode=0 " if barcode != "" { where = where + " and a.BarCode like '%" + barcode + "%' " } if samplecode != "" { where = where + " and a.SampleCode like '%" + samplecode + "%' " } if name != "" { where = where + " and b.Name like '%" + name + "%' " } if operator != "" { where = where + " and a.CreateBy like '%" + operator + "%' " } if sampletype != "" { where = where + " and b.SampleType = '" + sampletype + "' " } if ReceiveDate != "" { dates := strings.Split(ReceiveDate, ",") if len(dates) == 2 { minDate := dates[0] maxDate := dates[1] where = where + " and ReceiveDate>='" + minDate + "' and ReceiveDate<='" + maxDate + "'" } } svc := samplesinfo.GetSamplesInfoService(utils.DBE) var samplespre []samplesinfo.SamplesInfoList total, samplespre := svc.GetPagingEntitiesWithDonorsTb(this.User.AccCode, page.CurrentPage, page.Size, this.User.AccCode+DonorstbName, "a.Id desc", where) var datainfo DataInfo datainfo.Items = samplespre datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取搜索模版列表 // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /searchTemplate [get] func (this *SamplesinputController) SearchTemplateList() { var errinfo ErrorInfo svc := samplesinfo.GetSamplesInfoService(utils.DBE) tableName := this.User.AccCode + SampleSearchTemplateName templates, err := svc.GetAllSearchTemplate(tableName) if err != nil { beego.Error(err) errinfo.Message = "内部错误" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var datainfo DataInfo datainfo.Items = templates this.Data["json"] = &datainfo this.ServeJSON() } // @Title 更新搜索模版 // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /searchTemplate [put] func (this *SamplesinputController) UpdateTemplate() { name := this.GetString("name") template := string(this.Ctx.Input.RequestBody) var errinfo ErrorInfo if name == "" || template == "" { errinfo.Message = "参数错误" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } svc := samplesinfo.GetSamplesInfoService(utils.DBE) tableName := this.User.AccCode + SampleSearchTemplateName err := svc.UpsertSearchTemplate(tableName, name, template) notExistError := fmt.Sprintf(`Table '%s.%s' doesn't exist`, utils.Cfg.MustValue("db", "name"), tableName) if err != nil && strings.Contains(err.Error(), notExistError) { //表不存在,创建表 err = svc.CreateTemplateTable(tableName) if err != nil { beego.Error(err) errinfo.Message = "内部错误" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } else { err = svc.UpsertSearchTemplate(tableName, name, template) if err != nil { beego.Error(err) errinfo.Message = "内部错误" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } } } else if err != nil { beego.Error(err) errinfo.Message = "内部错误" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } errinfo.Message = "成功" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } // @Title 删除搜索模版 // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /searchTemplate [delete] func (this *SamplesinputController) DeleteTemplate() { name := this.GetString("name") var errinfo ErrorInfo if name == "" { errinfo.Message = "参数错误" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } svc := samplesinfo.GetSamplesInfoService(utils.DBE) tableName := this.User.AccCode + SampleSearchTemplateName err := svc.DeleteSearchTemplate(tableName, name) if err != nil { errinfo.Message = "参数错误" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } errinfo.Message = "成功" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } type searchTemplateField struct { Field string //字段 OrAnd string //与前值关系 Value string //树脂 } var a_table_fields_for_search = map[string]int{ "SampleCode": 2, "BarCode": 2, "CreateOn": 1, "ValidityDate": 1, "InnerCode": 1, "CellmakerId": 1, "CreateBy": 2, "Capacity": 1, } var b_table_fields_for_search = map[string]int{ "Name": 1, "SampleType": 1, } var null_table_fields_for_search = map[string]int{ "SamplingOrganName": 1, "SamplingSiteName": 1, "SourceId": 1, "SourceName": 2, } // @Title get // @Description get SampleType by token // @Success 200 {object} sampletype.SampleType // @router /search [get] func (this *SamplesinputController) SearchList() { name := this.GetString("name") var errinfo ErrorInfo if name == "" { errinfo.Message = "参数错误" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } page := this.GetPageInfoForm() svc := samplesinfo.GetSamplesInfoService(utils.DBE) tableName := this.User.AccCode + SampleSearchTemplateName template, err := svc.GetSearchTemplateByName(tableName, name) if err != nil { beego.Error(err) errinfo.Message = "内部错误" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } fields := make([]searchTemplateField, 0) err = json.Unmarshal([]byte(template.Template), &fields) if err != nil { beego.Error(err) errinfo.Message = "内部错误" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } where := " IState =1 and DeletionStateCode=0 " //设备权限 svcs := equipment.GetEquipmentService(utils.DBE) poweeids := svcs.GetPowerEquipmentids(this.User.AccCode, utils.ToStr(this.User.Id)) where = where + " and a.EquipmentId in(" + strings.Join(poweeids, ",") + ")" for i, field := range fields { if i != 0 { where += " " + field.OrAnd + " " } else { where += " and (" } var fieldName = "" var fieldVal = 0 if null_table_fields_for_search[field.Field] > 0 { fieldName = field.Field fieldVal = null_table_fields_for_search[field.Field] } else if a_table_fields_for_search[field.Field] > 0 { fieldName = "a." + field.Field fieldVal = a_table_fields_for_search[field.Field] } else if b_table_fields_for_search[field.Field] > 0 { fieldName = "b." + field.Field fieldVal = b_table_fields_for_search[field.Field] } else { //理论上只有公共扩展走到这里 beego.Debug("公共扩展-------", field.Field) fieldName = "b." + field.Field fieldVal = 2 } if strings.Contains(field.Value, "--") { //存在多个数值 vals := strings.Split(field.Value, "--") if len(vals) == 2 { where += " " + fieldName + ">='" + vals[0] + "' and " + fieldName + "<='" + vals[1] + "'" } } else { if fieldVal == 2 { // 模糊查询 where += " " + fieldName + " like '%" + field.Value + "%' " } else { where += " " + fieldName + "='" + field.Value + "' " } } } where += ")" var list []samplesinfo.SamplesInfoList total, list := svc.GetPagingEntitiesWithOrderSearch(this.User.AccCode, page.CurrentPage, page.Size, "Id desc", where) var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() }