| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639 |
- 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()
- }
|