gobal_config_service.go 62KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457
  1. package service
  2. import (
  3. "fmt"
  4. "time"
  5. "XT_New/models"
  6. "github.com/jinzhu/gorm"
  7. )
  8. func CreateAutomaticReduceRecord(config *models.GobalConfig) (err error) {
  9. err = writeDb.Model(&models.GobalConfig{}).Create(config).Error
  10. return
  11. }
  12. func CreateDrugAutomaticReduceRecord(config *models.DrugStockConfig) (err error) {
  13. err = writeDb.Model(&models.DrugStockConfig{}).Create(config).Error
  14. return
  15. }
  16. func FindAutomaticReduceRecordByOrgId(org_id int64) (err error, config models.GobalConfig) {
  17. err = readDb.Model(&models.GobalConfig{}).Where("status = 1 AND org_id = ?", org_id).First(&config).Error
  18. return
  19. }
  20. func FindDrugStockAutomaticReduceRecordByOrgId(org_id int64) (err error, config models.DrugStockConfig) {
  21. err = readDb.Model(&models.DrugStockConfig{}).Where("status = 1 AND org_id = ?", org_id).First(&config).Error
  22. return
  23. }
  24. func UpdateAutomaticReduceRecord(config *models.GobalConfig) (err error) {
  25. err = writeDb.Save(config).Error
  26. return
  27. }
  28. func UpdateGobalConfig(user_org_id int64) error {
  29. config := models.GobalConfig{}
  30. err := XTWriteDB().Model(&config).Where("org_id = ? and status = 1").Updates(map[string]interface{}{"is_open": 2}).Error
  31. return err
  32. }
  33. func UpdateDrugStockAutomaticReduceRecord(config *models.DrugStockConfig) (err error) {
  34. err = writeDb.Save(config).Error
  35. return
  36. }
  37. func CreatePrintTemplateRecord(template *models.GobalTemplate) (err error) {
  38. err = writeDb.Model(&models.GobalTemplate{}).Create(template).Error
  39. return
  40. }
  41. func FindPrintTemplateByOrgId(org_id int64) (err error, template models.GobalTemplate) {
  42. err = readDb.Model(&models.GobalTemplate{}).Where("status = 1 AND org_id = ?", org_id).Find(&template).Error
  43. return
  44. }
  45. func UpdatePrintTemplate(template *models.GobalTemplate) (err error) {
  46. err = writeDb.Save(template).Error
  47. return
  48. }
  49. func CreateConfigData(config *models.DataUploadConfig) (err error) {
  50. err = writeDb.Create(config).Error
  51. return
  52. }
  53. func SaveConfigData(config *models.DataUploadConfig) (err error) {
  54. err = writeDb.Save(config).Error
  55. return
  56. }
  57. func GetConfigData(org_id int64, config_type int64) (config models.DataUploadConfig, err error) {
  58. err = readDb.Model(&models.DataUploadConfig{}).Where("status = 1 AND org_id = ? AND config_type = ?", org_id, config_type).First(&config).Error
  59. return
  60. }
  61. func GetDockingStatus(config_type int64, province int64, city int64) (config models.DockingStatus, err error) {
  62. err = readDb.Model(&models.DockingStatus{}).Where("status = 1 AND docking_type = ? AND province_id = ? AND city_id = ?", config_type, province, city).First(&config).Error
  63. return
  64. }
  65. func GetConfigDataById(id int64) (config models.DataUploadConfig, err error) {
  66. err = readDb.Model(&models.DataUploadConfig{}).Where("id = ?", id).First(&config).Error
  67. return
  68. }
  69. func FindDoctorAdviceRecordByOrgId(org_id int64) (err error, config models.DoctorAdviceConfig) {
  70. err = readDb.Model(&models.DoctorAdviceConfig{}).Where("status = 1 AND user_org_id = ?", org_id).Find(&config).Error
  71. return
  72. }
  73. func CreateDoctorAdviceRecord(config *models.DoctorAdviceConfig) (err error) {
  74. err = writeDb.Model(&models.DoctorAdviceConfig{}).Create(config).Error
  75. return
  76. }
  77. func UpdateDoctorAdviceRecord(config *models.DoctorAdviceConfig) (err error) {
  78. err = writeDb.Save(config).Error
  79. return
  80. }
  81. func UpdateFiledConfig(org_id int64) (err error) {
  82. err = writeDb.Model(&models.FiledConfig{}).Where("org_id = ? AND sys_module = 0", org_id).Updates(map[string]interface{}{"is_show": 1}).Error
  83. return
  84. }
  85. func FindAllHideFiledConfig(template_id int64) (err error, config []*models.FiledConfig) {
  86. err = readDb.Model(&models.FiledConfig{}).Where("sys_module = ? AND is_show = 2", template_id).Find(&config).Error
  87. return
  88. }
  89. func UpdateShowFieldConfig(org_id int64, fileds []string) (err error) {
  90. err = writeDb.Model(&models.FiledConfig{}).Where("org_id = ? AND filed_name in (?) AND sys_module = 0 ", org_id, fileds).Updates(map[string]interface{}{"is_show": 2}).Error
  91. return
  92. }
  93. func FindAllAdviceParentTemplate(org_id int64) (template []*models.DoctorAdviceParentTemplate) {
  94. readDb.Model(&models.DoctorAdviceParentTemplate{}).Preload("DoctorAdviceTemplate", func(db *gorm.DB) *gorm.DB {
  95. return db.Preload("SubDoctorAdviceTemplate", "status = 1 AND org_id = ?", org_id).Where("status = 1 AND parent_id = 0 AND org_id = ?", org_id)
  96. }).Where("status = 1 AND org_id = ? ", org_id).Find(&template)
  97. return
  98. }
  99. func CreateDoctorParentTemplate(template *models.DoctorAdviceParentTemplate) (err error) {
  100. err = writeDb.Create(&template).Error
  101. return
  102. }
  103. func FindAllAdviceTemplates(org_id int64, parent_template_id int64) (template []*models.DoctorAdviceTemplate, err error) {
  104. err = readDb.Model(&models.DoctorAdviceTemplate{}).Where("status = 1 AND org_id = ? AND template_id = ?", org_id, parent_template_id).Find(&template).Error
  105. return
  106. }
  107. func CreateDoctorTemplate(template *models.DoctorAdviceTemplate) (err error) {
  108. err = writeDb.Create(&template).Error
  109. return
  110. }
  111. func CreateSystemDialysisSolution(solution *models.SystemPrescription) (err error) {
  112. err = writeDb.Create(solution).Error
  113. return
  114. }
  115. func UpdateSystemDialysisSolution(solution *models.SystemPrescription) (err error) {
  116. err = writeDb.Save(solution).Error
  117. return
  118. }
  119. func FindSystemDialysisSolution(orgID int64, id int64) (solution models.SystemPrescription, err error) {
  120. err = readDb.Model(&models.SystemPrescription{}).Where("id = ? and status=1 and user_org_id=?", id, orgID).First(&solution).Error
  121. return
  122. }
  123. func FindAllSystemPrescription(orgID int64) (solution []*models.SystemPrescription, err error) {
  124. err = readDb.Model(&models.SystemPrescription{}).Where("status=1 and user_org_id=?", orgID).Find(&solution).Error
  125. return
  126. }
  127. func FindSystemDialysisPrescriptionByMode(orgID int64, id int64) (solution models.SystemPrescription, err error) {
  128. err = readDb.Model(&models.SystemPrescription{}).Where("mode_id = ? and status=1 and user_org_id=?", id, orgID).First(&solution).Error
  129. return
  130. }
  131. func CreateAdviceInitConfig(adviceInit *models.AdviceInit) (err error) {
  132. err = writeDb.Create(&adviceInit).Error
  133. return
  134. }
  135. func FindAdviceInitConfig(org_id int64) (adviceInit models.AdviceInit, err error) {
  136. err = readDb.Model(&models.AdviceInit{}).Where("user_org_id = ? AND status = 1 ", org_id).First(&adviceInit).Error
  137. return
  138. }
  139. func GetPrint(ids []int64, orgid int64, advicetype int64, stoptype int64) (doctor []*models.DoctorAdvice, err error) {
  140. db := XTReadDB().Model(&doctor).Where("status =1")
  141. if len(ids) == 1 {
  142. if orgid > 0 {
  143. db = db.Where("user_org_id = ?", orgid)
  144. }
  145. if advicetype > 0 {
  146. db = db.Where("advice_type = ?", advicetype)
  147. }
  148. if stoptype > 0 {
  149. db = db.Where("stop_state = ?", stoptype)
  150. }
  151. err = db.Where("groupno = ?", ids[0]).Order("advice_date asc").Find(&doctor).Error
  152. } else {
  153. if orgid > 0 {
  154. db = db.Where("user_org_id = ?", orgid)
  155. }
  156. if advicetype > 0 {
  157. db = db.Where("advice_type = ?", advicetype)
  158. }
  159. if stoptype > 0 {
  160. db = db.Where("stop_state = ?", stoptype)
  161. }
  162. err = db.Where("groupno IN(?)", ids).Order("advice_date asc").Find(&doctor).Error
  163. }
  164. return doctor, err
  165. }
  166. func GetHisPrint(ids []string, org_id int64) (advice []*models.HisDoctorAdviceInfo, err error) {
  167. err = XTReadDB().Where("id in (?) and user_org_id = ?", ids, org_id).Order("execution_time asc").Find(&advice).Error
  168. return advice, err
  169. }
  170. func GetExportLogByType(org_id int64, log_type int64) (log []*models.ExportLog, err error) {
  171. err = readDb.Model(&models.ExportLog{}).Where("user_org_id = ? AND status = 1 AND log_type = ?", org_id, log_type).
  172. Preload("ExportErrLog", "status = 1").Order("export_time desc").Find(&log).Error
  173. return
  174. }
  175. func FindXTHisRecordByOrgId(org_id int64) (err error, config models.XtHisConfig) {
  176. err = readDb.Model(&models.XtHisConfig{}).Where("status = 1 AND user_org_id = ?", org_id).Find(&config).Error
  177. return
  178. }
  179. func FindHisStockPriceRecordByOrgId(org_id int64) (err error, config models.HisStockPriceConfig) {
  180. err = readDb.Model(&models.HisStockPriceConfig{}).Where("status = 1 AND user_org_id = ?", org_id).Find(&config).Error
  181. return
  182. }
  183. func UpdateXTHisRecord(config *models.XtHisConfig) (err error) {
  184. err = writeDb.Save(config).Error
  185. return
  186. }
  187. func CreateXTHisRecord(config *models.XtHisConfig) (err error) {
  188. err = writeDb.Model(&models.XtHisConfig{}).Create(config).Error
  189. return
  190. }
  191. func CreateHisStockPriceRecord(config *models.HisStockPriceConfig) (err error) {
  192. err = writeDb.Model(&models.HisStockPriceConfig{}).Create(config).Error
  193. return
  194. }
  195. func UpdateHisStockPriceRecord(config *models.HisStockPriceConfig) (err error) {
  196. err = writeDb.Save(config).Error
  197. return
  198. }
  199. // TODO:项目开关
  200. func FindXTHisProjectByOrgId(org_id int64) (err error, config models.XtHisProjectConfig) {
  201. err = readDb.Model(&models.XtHisProjectConfig{}).Where("status = 1 AND user_org_id = ?", org_id).Find(&config).Error
  202. return
  203. }
  204. func FindXTHisProjectByOrgIdOne(org_id int64) (err error, config models.XtHisProjectConfig) {
  205. err = readDb.Model(&models.XtHisProjectConfig{}).Where("status = 1 AND user_org_id = ?", org_id).Find(&config).Error
  206. return
  207. }
  208. func UpdateXTHisProjectRecord(config *models.XtHisProjectConfig) (err error) {
  209. err = writeDb.Save(config).Error
  210. return
  211. }
  212. func CreateXTHisProjectRecord(config *models.XtHisProjectConfig) (err error) {
  213. err = writeDb.Model(&models.XtHisProjectConfig{}).Create(config).Error
  214. return
  215. }
  216. func GetExportHisOrderList(user_org_id int64, start_time int64, end_time int64, p_type int64) (order []*models.HisOrder, err error) {
  217. db := readDb.Model(&models.HisOrder{})
  218. if start_time != 0 {
  219. db = db.Where("his_order.settle_accounts_date>=?", start_time)
  220. }
  221. if end_time != 0 {
  222. db = db.Where("his_order.settle_accounts_date<=?", end_time)
  223. }
  224. if p_type > 0 {
  225. db = db.Where("his_order.status = 1 AND his_order.user_org_id = ? AND his_order.order_status = 2 AND p_type = ? ", user_org_id, p_type)
  226. } else {
  227. db = db.Where("his_order.status = 1 AND his_order.user_org_id = ? AND his_order.order_status = 2", user_org_id)
  228. }
  229. db = db.Preload("HisOrderInfo", "status = 1 AND user_org_id = ?", user_org_id).
  230. Preload("Patients", "status = 1 AND user_org_id = ?", user_org_id).
  231. Preload("HisPatient", "status = 1 AND user_org_id = ?", user_org_id).
  232. Preload("HisHospitalCheckRecord", "status = 1 AND user_org_id = ? AND in_hospital_status = 1 AND out_hospital_status = 1 ", user_org_id).
  233. Preload("HisPrescriptionInfo", func(db *gorm.DB) *gorm.DB {
  234. return db.Where("status = 1 AND user_org_id = ?", user_org_id).Preload("XtHisDepartment", "status = 1")
  235. })
  236. err = db.Order("setl_time asc").Find(&order).Error
  237. return
  238. }
  239. func GetExportHisOrderListBySetlTIME(user_org_id int64, start_time string, end_time string, p_type int64) (order []*models.HisOrder, err error) {
  240. db := readDb.Model(&models.HisOrder{})
  241. if len(start_time) > 0 {
  242. db = db.Where("his_order.setl_time >= ?", start_time)
  243. }
  244. if len(end_time) > 0 {
  245. db = db.Where("his_order.setl_time <= ?", end_time)
  246. }
  247. if p_type > 0 {
  248. db = db.Where("his_order.status = 1 AND his_order.user_org_id = ? AND his_order.order_status = 2 AND p_type = ? ", user_org_id, p_type)
  249. } else {
  250. db = db.Where("his_order.status = 1 AND his_order.user_org_id = ? AND his_order.order_status = 2", user_org_id)
  251. }
  252. db = db.Preload("HisOrderInfo", "status = 1 AND user_org_id = ?", user_org_id).
  253. Preload("Patients", "status = 1 AND user_org_id = ?", user_org_id).
  254. Preload("HisPatient", "status = 1 AND user_org_id = ?", user_org_id).
  255. Preload("HisHospitalCheckRecord", "status = 1 AND user_org_id = ? AND in_hospital_status = 1 AND out_hospital_status = 1 ", user_org_id).
  256. Preload("HisPrescriptionInfo", func(db *gorm.DB) *gorm.DB {
  257. return db.Where("status = 1 AND user_org_id = ?", user_org_id).Preload("XtHisDepartment", "status = 1")
  258. })
  259. err = db.Order("setl_time asc").Find(&order).Error
  260. return
  261. }
  262. func GetDrugInOrderDetail(startime int64, endtime int64, orgid int64, orderType int64, manufacturerId int64, keyword string, page int64, limit int64, storehouse_id int64, drug_id int64) (drugInfo []*models.BloodDrugWarehouseInfo, total int64, err error) {
  263. likeKey := "%" + keyword + "%"
  264. offset := (page - 1) * limit
  265. db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1 and x.is_check = 1")
  266. dbOne := XTReadDB().Table("xt_base_drug as t").Where("t.status =1")
  267. dbTwo := XTReadDB().Table("xt_drug_warehouse as s").Where("s.status = 1")
  268. dbThree := UserReadDB().Table("sgj_user_admin_role as r").Where("r.status = 1")
  269. fmt.Print(dbOne, dbTwo, dbThree)
  270. if startime > 0 {
  271. db = db.Where("x.ctime >=?", startime)
  272. }
  273. if endtime > 0 {
  274. db = db.Where("x.ctime <=?", endtime)
  275. }
  276. if orgid > 0 {
  277. db = db.Where("x.org_id =?", orgid)
  278. }
  279. if storehouse_id > 0 {
  280. db = db.Where("x.storehouse_id = ?", storehouse_id)
  281. }
  282. if drug_id > 0 {
  283. db = db.Where("x.drug_id = ?", drug_id)
  284. }
  285. if len(keyword) > 0 {
  286. db = db.Joins("left join sgj_xt.xt_drug_warehouse as o on o.id = x.warehousing_id left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = o.creater")
  287. db = db.Where("x.warehousing_order like ? or t.drug_name like ? or r.user_name like ? ", likeKey, likeKey, likeKey)
  288. }
  289. if manufacturerId > 0 {
  290. err = db.Select("x.id,x.warehousing_id,x.drug_id,x.batch_number,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.price,x.total_price,x.dealer,t.manufacturer,x.remark,x.ctime,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.storehouse_id,x.max_unit as count_unit,t.drug_type,t.drug_name,t.drug_spec,t.min_unit,t.dose,t.dose_unit,t.max_unit,t.min_number,s.creater,x.drug_code").Joins("left join xt_base_drug as t on t.id = x.drug_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Joins("left join xt_drug_warehouse as s on s.id = x.warehousing_id and s.org_id = ? and s.status =1", orgid).Order("x.id desc").Count(&total).Offset(offset).Limit(limit).Group("x.id").Scan(&drugInfo).Error
  291. } else {
  292. err = db.Select("x.id,x.warehousing_id,x.drug_id,x.batch_number,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.price,x.total_price,x.dealer,t.manufacturer,x.remark,x.ctime,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.storehouse_id,x.max_unit as count_unit,t.drug_type,t.drug_name,t.drug_spec,t.min_unit,t.dose,t.dose_unit,t.max_unit,t.min_number,s.creater,x.drug_code").Joins("left join xt_base_drug as t on t.id = x.drug_id and t.org_id = ? and t.status =1", orgid).Joins("left join xt_drug_warehouse as s on s.id = x.warehousing_id and s.org_id = ? and s.status =1", orgid).Order("x.id desc").Count(&total).Offset(offset).Limit(limit).Group("x.id").Scan(&drugInfo).Error
  293. }
  294. return drugInfo, total, err
  295. }
  296. func GetDrugReturnOrder(startime int64, endtime int64, orgid int64, orderType int64, manufacturerId int64, keyword string, limit int64, page int64) (returninfo []*models.BloodDrugSalesReturnInfo, total int64, err error) {
  297. likeKey := "%" + keyword + "%"
  298. offset := (page - 1) * limit
  299. db := XTReadDB().Table("xt_drug_sales_return_info as x").Where("x.status =1")
  300. dbOne := XTReadDB().Table("xt_base_drug as s").Where("s.status =1")
  301. dbTwo := XTReadDB().Table("xt_drug_sales_return as r").Where("r.status = 1")
  302. fmt.Print(dbOne, dbTwo)
  303. if startime > 0 {
  304. db = db.Where("x.ctime >= ?", startime)
  305. }
  306. if endtime > 0 {
  307. db = db.Where("x.ctime <=?", endtime)
  308. }
  309. if orgid > 0 {
  310. db = db.Where("x.org_id = ?", orgid)
  311. }
  312. if orderType > 0 {
  313. db = db.Where("x.type = ?", orderType)
  314. }
  315. if len(keyword) > 0 {
  316. db = db.Where("x.order_number like ? or s.drug_spec like ? or r.creater like ?", likeKey, likeKey, likeKey)
  317. }
  318. if manufacturerId > 0 {
  319. err = db.Select("x.id,x.drug_id,x.sales_return_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,x.dealer,x.manufacturer,x.retail_price,x.retail_total_price,x.number,s.drug_name,s.drug_spec,s.drug_type,s.min_unit,r.creater").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_sales_return as r on r.id = x.sales_return_id and r.org_id = ? and r.status =1", orgid).Where("r.manufacturer = ?", manufacturerId).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&returninfo).Error
  320. } else {
  321. err = db.Select("x.id,x.drug_id,x.sales_return_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,x.dealer,x.manufacturer,x.retail_price,x.retail_total_price,x.number,s.drug_name,s.drug_spec,s.drug_type,s.min_unit,r.creater").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_sales_return as r on r.id = x.sales_return_id and r.org_id = ? and r.status =1", orgid).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&returninfo).Error
  322. }
  323. return returninfo, total, err
  324. }
  325. func GetDrugOutOrder(startime int64, endtime int64, orgid int64, orderType int64, manufacturerId int64, keyword string, page int64, limit int64, storehouse_id int64, drug_id int64, order_way int64) (outinfo []*models.BloodDrugWarehouseOutInfo, total int64, err error) {
  326. likeKey := "%" + keyword + "%"
  327. offset := (page - 1) * limit
  328. db := XTReadDB().Table("sgj_xt.xt_drug_warehouse_out_info as x").Where("x.status =1 and x.is_check = 1")
  329. dbOne := XTReadDB().Table("sgj_xt.xt_base_drug as b").Where("b.status =1")
  330. dbTwo := XTReadDB().Table("sgj_xt.xt_drug_warehouse_out as t").Where("t.status = 1")
  331. dbThree := XTReadDB().Table("sgj_xt.xt_drug_warehouse_info as p").Where("p.status=1")
  332. fmt.Print(dbOne, dbTwo, dbThree)
  333. if startime > 0 {
  334. db = db.Where("x.sys_record_time >=?", startime)
  335. }
  336. if endtime > 0 {
  337. db = db.Where("x.sys_record_time <=?", endtime)
  338. }
  339. if orgid > 0 {
  340. db = db.Where("x.org_id = ?", orgid)
  341. }
  342. if orderType > 0 {
  343. db = db.Where("x.type = ?", orderType)
  344. }
  345. if storehouse_id > 0 {
  346. db = db.Where("x.storehouse_id = ?", storehouse_id)
  347. }
  348. if drug_id > 0 {
  349. db = db.Where("x.drug_id = ?", drug_id)
  350. }
  351. if order_way == 1 {
  352. db = db.Where("x.is_sys!=1")
  353. }
  354. if order_way == 2 {
  355. db = db.Where("x.is_sys=1")
  356. }
  357. if len(keyword) > 0 {
  358. db = db.Joins("left join sgj_xt.xt_drug_warehouse_out as o on o.id = x.warehouse_out_id left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = o.creater").Group("x.id")
  359. db = db.Where("x.warehouse_out_order_number like ? or b.drug_name like ? or r.user_name like ?", likeKey, likeKey, likeKey)
  360. }
  361. db = db.Joins("left join sgj_xt.xt_drug_warehouse_info as p on p.id =x.warehouse_info_id")
  362. if manufacturerId > 0 {
  363. err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.warehousing_out_target,x.count,x.count_unit,x.price,x.total_price,x.product_date,x.expiry_date,x.ctime,x.org_id,x.remark,x.is_cancel,x.warehouse_out_order_number,x.type,x.dealer,x.manufacturer,x.is_sys,x.sys_record_time,x.retail_price,x.retail_total_price,x.storehouse_id,x.patient_id,x.batch_number,b.drug_name,b.drug_spec,b.drug_type,b.min_unit,b.max_unit,b.min_number,b.dose,b.dose_unit,b.last_price,t.creater,p.price as infor_price").Joins("left join xt_base_drug as b on b.id = x.drug_id and b.org_id = ? and b.status =1", orgid).Joins("left join xt_drug_warehouse_out as t on t.id = x.warehouse_out_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&outinfo).Error
  364. } else {
  365. err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.warehousing_out_target,x.count,x.count_unit,x.price,x.total_price,x.product_date,x.expiry_date,x.ctime,x.org_id,x.remark,x.is_cancel,x.warehouse_out_order_number,x.type,x.dealer,x.manufacturer,x.is_sys,x.sys_record_time,x.retail_price,x.retail_total_price,x.storehouse_id,x.patient_id,x.batch_number,b.drug_name,b.drug_spec,b.drug_type,b.min_unit,b.max_unit,b.min_number,b.dose,b.dose_unit,b.last_price,t.creater,p.price as infor_price").Joins("left join xt_base_drug as b on b.id = x.drug_id and b.org_id = ? and b.status =1", orgid).Joins("left join xt_drug_warehouse_out as t on t.id = x.warehouse_out_id and t.org_id = ? and t.status =1", orgid).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&outinfo).Error
  366. }
  367. return outinfo, total, err
  368. }
  369. func GetDrugCancelOrderPrint(startime int64, endtime int64, orgid int64, orderType int64, manufacturerId int64, keyword string, storehouse_id int64, drug_id int64) (info []*models.BloodDrugCancelStockInfo, err error) {
  370. likeKey := "%" + keyword + "%"
  371. db := XTReadDB().Table("xt_drug_cancel_stock_info as x").Where("x.status =1")
  372. dbOne := XTReadDB().Table("xt_base_drug as s").Where("s.status =1")
  373. dbTwo := XTReadDB().Table("xt_drug_cancel_stock as t").Where("t.status = 1")
  374. fmt.Print(dbOne, dbTwo)
  375. if startime > 0 {
  376. db = db.Where("x.ctime >= ?", startime)
  377. }
  378. if endtime > 0 {
  379. db = db.Where("x.ctime<=?", endtime)
  380. }
  381. if orgid > 0 {
  382. db = db.Where("x.org_id = ?", orgid)
  383. }
  384. if orderType > 0 {
  385. db = db.Where("x.type = ? ", orderType)
  386. }
  387. if len(keyword) > 0 {
  388. db = db.Where("x.order_number like ? or s.drug_spec like ? or t.creater like ?", likeKey, likeKey, likeKey)
  389. }
  390. if storehouse_id > 0 {
  391. db = db.Where("x.storehouse_id = ?", storehouse_id)
  392. }
  393. if drug_id > 0 {
  394. db = db.Where("x.drug_id = ?", drug_id)
  395. }
  396. if manufacturerId > 0 {
  397. err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Order("x.ctime desc").Group("x.drug_id").Scan(&info).Error
  398. } else {
  399. err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Order("x.ctime desc").Group("x.drug_id").Scan(&info).Error
  400. }
  401. return info, err
  402. }
  403. func GetDrugCancelOrder(startime int64, endtime int64, orgid int64, orderType int64, manufacturerId int64, keyword string, page int64, limit int64, storehouse_id int64, drug_id int64) (cancel []*models.BloodDrugCancelStockInfo, total int64, err error) {
  404. likeKey := "%" + keyword + "%"
  405. offset := (page - 1) * limit
  406. db := XTReadDB().Table("xt_drug_cancel_stock_info as x").Where("x.status =1")
  407. dbOne := XTReadDB().Table("xt_base_drug as s").Where("s.status =1")
  408. dbTwo := XTReadDB().Table("xt_drug_cancel_stock as t").Where("t.status = 1")
  409. fmt.Print(dbOne, dbTwo)
  410. if startime > 0 {
  411. db = db.Where("x.ctime >= ?", startime)
  412. }
  413. if endtime > 0 {
  414. db = db.Where("x.ctime<=?", endtime)
  415. }
  416. if orgid > 0 {
  417. db = db.Where("x.org_id = ?", orgid)
  418. }
  419. if orderType > 0 {
  420. db = db.Where("x.type = ? ", orderType)
  421. }
  422. if storehouse_id > 0 {
  423. db = db.Where("x.storehouse_id = ?", storehouse_id)
  424. }
  425. if drug_id > 0 {
  426. db = db.Where("x.drug_id = ?", drug_id)
  427. }
  428. if len(keyword) > 0 {
  429. db = db.Joins("left join sgj_xt.xt_drug_cancel_stock as o on o.id = x.cancel_stock_id left join sgj_users.sgj_user_admin_role as r on r.admin_user_id = o.creater").Group("o.id")
  430. db = db.Where("x.order_number like ? or s.drug_spec like ? or r.user_name like ? or s.drug_name like ?", likeKey, likeKey, likeKey, likeKey)
  431. }
  432. if manufacturerId > 0 {
  433. err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,x.patient_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Where("t.manufacturer = ?", manufacturerId).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&cancel).Error
  434. } else {
  435. err = db.Select("x.id,x.max_unit as unit,x.drug_id,x.cancel_stock_id,x.count,x.price,x.total,x.product_date,x.expiry_date,x.ctime,x.org_id,x.order_number,x.type,s.dealer,s.manufacturer,x.retail_price,x.retail_total_price,x.number,x.storehouse_id,x.patient_id,s.drug_name,s.drug_type,s.drug_spec,s.min_unit,t.creater,s.dose,s.dose_unit,s.min_number,s.max_unit").Joins("left join xt_base_drug as s on s.id = x.drug_id and s.org_id = ? and s.status = 1", orgid).Joins("left join xt_drug_cancel_stock as t on t.id = x.cancel_stock_id and t.org_id = ? and t.status =1", orgid).Order("x.ctime desc").Count(&total).Offset(offset).Limit(limit).Scan(&cancel).Error
  436. }
  437. return cancel, total, err
  438. }
  439. func FindPrintStockGoodInfoByType(types int, startTime int64, end_time int64, orgId int64) (list []*models.StockInfo, err error) {
  440. db := XTReadDB().Model(&models.StockInfo{})
  441. db = db.Where("xt_good_information.org_id = ? AND xt_good_information.status = 1", orgId)
  442. if types == 1 {
  443. db = db.Joins("JOIN xt_warehouse_info AS info ON info.good_id=xt_good_information.id AND info.status = 1 AND info.org_id = ?", orgId).Group("xt_good_information.id")
  444. db = db.Preload("QueryWarehousingInfo", func(db *gorm.DB) *gorm.DB {
  445. return db.Where("xt_warehouse_info.org_id = ? AND xt_warehouse_info.status = 1", orgId).Joins("JOIN xt_warehouse AS warehouse ON warehouse.id = xt_warehouse_info.warehousing_id AND warehouse.status = 1 AND warehouse.warehousing_time >=? AND warehouse.warehousing_time<= ? AND warehouse.org_id = ?", startTime, end_time, orgId)
  446. })
  447. } else if types == 2 {
  448. db = db.Joins("JOIN xt_sales_return_info AS info ON info.good_id=xt_good_information.id AND info.status = 1 AND info.org_id = ?", orgId).Group("xt_good_information.id")
  449. db = db.Preload("QuerySalesReturnInfo", func(db *gorm.DB) *gorm.DB {
  450. return db.Where("xt_sales_return_info.org_id = ? AND xt_sales_return_info.status = 1", orgId).Joins("JOIN xt_sales_return AS sales ON sales.id = xt_sales_return_info.sales_return_id AND sales.status = 1 AND sales.return_time >=? AND sales.return_time<= ? AND sales.org_id = ?", startTime, end_time, orgId)
  451. })
  452. } else if types == 3 {
  453. db = db.Joins("JOIN xt_warehouse_out_info AS info ON info.good_id=xt_good_information.id AND info.status = 1 AND info.org_id = ?", orgId).Group("xt_good_information.id")
  454. db = db.Preload("QueryWarehouseOutInfo", func(db *gorm.DB) *gorm.DB {
  455. return db.Where("xt_warehouse_out_info.org_id = ? AND xt_warehouse_out_info.status = 1", orgId).Joins("JOIN xt_warehouse_out ON xt_warehouse_out.id = xt_warehouse_out_info.warehouse_out_id AND xt_warehouse_out.status = 1 AND xt_warehouse_out.warehouse_out_time >=? AND xt_warehouse_out.warehouse_out_time<= ? AND xt_warehouse_out.org_id = ? ", startTime, end_time, orgId)
  456. })
  457. } else if types == 4 {
  458. db = db.Joins("JOIN xt_cancel_stock_info AS info ON info.good_id=xt_good_information.id AND info.status = 1 AND info.org_id = ?", orgId).Group("xt_good_information.id")
  459. db = db.Preload("QueryCancelStockInfo", func(db *gorm.DB) *gorm.DB {
  460. return db.Where("xt_cancel_stock_info.org_id = ? AND xt_cancel_stock_info.status = 1", orgId).Joins("JOIN xt_cancel_stock AS cancel ON cancel.id = xt_cancel_stock_info.cancel_stock_id AND cancel.status = 1 AND cancel.return_time >=? AND cancel.return_time<= ? AND cancel.org_id = ?", startTime, end_time, orgId)
  461. })
  462. }
  463. db = db.Preload("GoodsType", "org_id = ? AND status = 1", orgId)
  464. err = db.Order("ctime desc").Find(&list).Error
  465. return
  466. }
  467. func GetMobileScheduleListOne(start_time int64, end_time int64, org_id int64, schedule_type int64, partion_id int64) (schedulelist []*models.XtScheduleList, err error) {
  468. db := XTReadDB().Model(&schedulelist).Where("status =1 and user_org_id =?", org_id)
  469. if start_time > 0 {
  470. db = db.Where("schedule_date>=?", start_time)
  471. }
  472. if end_time > 0 {
  473. db = db.Where("schedule_date<=?", end_time)
  474. }
  475. if schedule_type > 0 {
  476. db = db.Where("schedule_type =?", schedule_type)
  477. }
  478. if partion_id > 0 {
  479. db = db.Where("partition_id = ?", partion_id)
  480. }
  481. err = db.Preload("DialysisSolution", "status=1 and user_org_id =? and solution_status =1", org_id).Preload("DialysisPrescription", "status=1 and user_org_id =?", org_id).Find(&schedulelist).Error
  482. return schedulelist, err
  483. }
  484. func GetMobileDialysisPrescriptionList(start_time int64, end_time int64, org_id int64) (prescription []*models.DialysisPrescription, err error) {
  485. db := XTReadDB().Model(&prescription).Where("status =1 and user_org_id =?", org_id)
  486. if start_time > 0 {
  487. db = db.Where("record_date>=?", start_time)
  488. }
  489. if end_time > 0 {
  490. db = db.Where("record_date<=?", end_time)
  491. }
  492. err = db.Find(&prescription).Error
  493. return prescription, err
  494. }
  495. func GetOutStockTotalCountTwo(startime int64, endtime int64, orgid int64) (autoMatic []*models.NewXtAutomaticReduceDetail, err error) {
  496. err = XTReadDB().Raw("SELECT good_id,SUM(b.count) as count FROM (SELECT DISTINCT x.patient_id,x.good_id,x.record_time,x.count FROM xt_automatic_reduce_detail as x WHERE x.org_id = ? and x.record_time >= ? and x.record_time<=? and `status` = 1) as b GROUP BY good_id", orgid, startime, endtime).Scan(&autoMatic).Error
  497. return autoMatic, err
  498. }
  499. func AddMonitorOpen(config *models.XtMonitorConfig) error {
  500. err := XTWriteDB().Create(&config).Error
  501. return err
  502. }
  503. func UpdateMonitorOpen(orgid int64, config *models.XtMonitorConfig) error {
  504. err := XTWriteDB().Model(&config).Where("user_org_id = ? and status = 1", orgid).Updates(map[string]interface{}{"is_open": config.IsOpen, "mtime": time.Now().Unix()}).Error
  505. return err
  506. }
  507. func GetMonitorConfig(orgid int64) (models.XtMonitorConfig, error) {
  508. config := models.XtMonitorConfig{}
  509. err := XTReadDB().Model(&config).Where("user_org_id = ? and status = 1", orgid).Find(&config).Error
  510. return config, err
  511. }
  512. func AddOrderConfig(config *models.XtOrderConfig) error {
  513. err := XTWriteDB().Create(&config).Error
  514. return err
  515. }
  516. func UpdateOrderConfig(orgid int64, config *models.XtOrderConfig) error {
  517. err := XTWriteDB().Model(&config).Where("user_org_id = ? and status = 1", orgid).Updates(map[string]interface{}{"is_open": config.IsOpen, "mtime": time.Now().Unix()}).Error
  518. return err
  519. }
  520. func GetOrderConfigById(orgid int64) (*models.XtOrderConfig, error) {
  521. config := models.XtOrderConfig{}
  522. err := XTReadDB().Model(&config).Where("user_org_id = ? and status = 1", orgid).Find(&config).Error
  523. if err == gorm.ErrRecordNotFound {
  524. return nil, err
  525. }
  526. if err != nil {
  527. return nil, err
  528. }
  529. return &config, nil
  530. }
  531. func GetOrderConfig(orgid int64) (models.XtOrderConfig, error) {
  532. config := models.XtOrderConfig{}
  533. err := XTReadDB().Where("user_org_id = ? and status = 1", orgid).Find(&config).Error
  534. return config, err
  535. }
  536. func GetMonitorConfigById(orgid int64) (*models.XtMonitorConfig, error) {
  537. config := models.XtMonitorConfig{}
  538. err := XTReadDB().Model(&config).Where("user_org_id = ? and status = 1", orgid).Find(&config).Error
  539. if err == gorm.ErrRecordNotFound {
  540. return nil, err
  541. }
  542. if err != nil {
  543. return nil, err
  544. }
  545. return &config, nil
  546. }
  547. func GetDrugAutoMaticList(orgid int64, warehouse_out_id int64, record_time int64, warehouse_out_order_number string) (auto []*models.VmDrugAutomaticReduceDetail, err error) {
  548. db := XTReadDB().Table("xt_drug_automatic_reduce_detail as x").Where("x.status = 1")
  549. err = db.Select("x.org_id,x.warehouse_out_id,x.record_time,x.drug_id,sum(x.count) as total").Where("x.org_id = ? and x.record_time = ? and x.status= 1 and x.warehouse_out_order_number = ?", orgid, record_time, warehouse_out_order_number).Group("x.drug_id").Scan(&auto).Error
  550. return auto, err
  551. }
  552. func GetAllBaseDrugList(orgid int64) (drug []*models.BaseDrugLib, err error) {
  553. err = XTReadDB().Model(&drug).Where("org_id = ? and status = 1", orgid).Find(&drug).Error
  554. return drug, err
  555. }
  556. func GetAllBaseDrugListTwo(orgid int64) (drug []*models.BaseDrugLibEleven, err error) {
  557. db := XTReadDB().Table("xt_base_drug as x").Where("x.status = 1")
  558. if orgid > 0 {
  559. db = db.Where("x.org_id =?", orgid)
  560. }
  561. err = db.Select("x.id,x.drug_name,p.manufacturer_name,x.dose,x.dose_unit,x.min_number,x.max_unit,x.min_unit,x.scan_code,x.drug_identification_code").Joins("left join xt_manufacturer as p on p.id =x.manufacturer").Scan(&drug).Error
  562. return drug, err
  563. }
  564. func GetDrugWarehuseOrderInfo(orgid int64) (drug []*models.DrugWarehouseInfo, err error) {
  565. err = XTReadDB().Where("org_id = ? and status = 1", orgid).Group("drug_id").Find(&drug).Error
  566. return drug, err
  567. }
  568. func GetDrugStockList(page int64, limit int64, keyword string, drugcategory int64, startime int64, endtime int64, orgid int64) (list []*models.StDrugWarehouseInfo, total int64, err error) {
  569. offset := (page - 1) * limit
  570. db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1")
  571. likeKey := "%" + keyword + "%"
  572. if orgid > 0 {
  573. db = db.Where("x.org_id = ?", orgid)
  574. }
  575. if startime > 0 {
  576. db = db.Where("x.ctime >=?", startime)
  577. }
  578. if endtime > 0 {
  579. db = db.Where("x.ctime<=?", endtime)
  580. }
  581. if drugcategory > 0 && len(keyword) == 0 {
  582. err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.warehouseing_unit,x.stock_max_number,x.stock_min_number,x.price,x.total_price,x.dealer,x.remark,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.batch_number,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,t.dose,t.dose_unit,t.last_price,t.manufacturer").Joins("left join xt_base_drug as t on t.id = x.drug_id and t.org_id =?", orgid).Where("t.drug_type = ?", drugcategory).Group("x.drug_id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Scan(&list).Error
  583. return
  584. }
  585. if drugcategory <= 0 && len(keyword) == 0 {
  586. err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.warehouseing_unit,x.stock_max_number,x.stock_min_number,x.price,x.total_price,x.dealer,x.remark,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.batch_number,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,t.dose,t.dose_unit,t.last_price,t.manufacturer").Joins("left join xt_base_drug as t on t.id = x.drug_id and t.org_id = ?", orgid).Group("x.drug_id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Scan(&list).Error
  587. return
  588. }
  589. if len(keyword) > 0 && drugcategory == 0 {
  590. err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.warehouseing_unit,x.stock_max_number,x.stock_min_number,x.price,x.total_price,x.dealer,x.remark,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.batch_number,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,t.dose,t.dose_unit,t.last_price,t.manufacturer").Joins("left join xt_base_drug as t on t.id = x.drug_id and t.org_id=?", orgid).Where("t.drug_name like ?", likeKey).Group("x.drug_id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Scan(&list).Error
  591. return
  592. }
  593. if len(keyword) <= 0 && drugcategory == 0 {
  594. err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.warehouseing_unit,x.stock_max_number,x.stock_min_number,x.price,x.total_price,x.dealer,x.remark,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.batch_number,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,t.dose,t.dose_unit,t.last_price,t.manufacturer").Joins("left join xt_base_drug as t on t.id = x.drug_id and t.org_id = ?", orgid).Group("x.drug_id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Scan(&list).Error
  595. return
  596. }
  597. if len(keyword) > 0 && drugcategory > 0 {
  598. err = db.Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.warehouseing_unit,x.stock_max_number,x.stock_min_number,x.price,x.total_price,x.dealer,x.remark,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.batch_number,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,t.dose,t.dose_unit,t.last_price,t.manufacturer").Joins("left join xt_base_drug as t on t.id = x.drug_id and t.org_id = ?", orgid).Where("t.drug_type = ? or t.drug_name like ?", drugcategory, likeKey).Group("x.drug_id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Scan(&list).Error
  599. return
  600. }
  601. return list, total, err
  602. }
  603. func GetAllBaseDurgListCount(page int64, limit int64, keyword string, drugcategory int64, startime int64, endtime int64, orgid int64, storehouse_id int64, drug_id int64) (drug []*models.VmBaseDrug, total int64, err error) {
  604. offset := (page - 1) * limit
  605. db := XTReadDB().Table("xt_base_drug").Where("status = 1")
  606. likeKey := "%" + keyword + "%"
  607. if orgid > 0 {
  608. db = db.Where("org_id = ?", orgid)
  609. }
  610. if drugcategory > 0 {
  611. db = db.Where("drug_type = ?", drugcategory)
  612. }
  613. if len(keyword) > 0 {
  614. db = db.Where("drug_name like ?", likeKey)
  615. }
  616. if drug_id > 0 {
  617. db = db.Where("id = ?", drug_id)
  618. }
  619. err = db.Count(&total).Offset(offset).Limit(limit).Order("ctime desc").Preload("DrugWarehouseInfo", func(db *gorm.DB) *gorm.DB {
  620. if startime > 0 {
  621. db = db.Where("ctime>=?", startime)
  622. }
  623. if endtime > 0 {
  624. db = db.Where("ctime<=?", endtime)
  625. }
  626. if storehouse_id > 0 {
  627. db = db.Where("storehouse_id = ?", storehouse_id)
  628. }
  629. return db.Where("status = 1 and is_check = 1")
  630. }).Preload("DrugCancelStockInfo", func(db *gorm.DB) *gorm.DB {
  631. if startime > 0 {
  632. db = db.Where("ctime>=?", startime)
  633. }
  634. if endtime > 0 {
  635. db = db.Where("ctime<=?", endtime)
  636. }
  637. return db.Where("status = 1")
  638. }).Preload("DrugWarehouse", func(db *gorm.DB) *gorm.DB {
  639. if startime > 0 {
  640. db = db.Where("ctime>=?", startime)
  641. }
  642. if endtime > 0 {
  643. db = db.Where("ctime<=?", endtime)
  644. }
  645. if storehouse_id > 0 {
  646. db = db.Where("storehouse_id = ?", storehouse_id)
  647. }
  648. return db.Group("drug_id,storehouse_id").Where("status = 1")
  649. }).Preload("DrugWarehouseOutInfo", func(db *gorm.DB) *gorm.DB {
  650. if startime > 0 {
  651. db = db.Where("ctime>=?", startime)
  652. }
  653. if endtime > 0 {
  654. db = db.Where("ctime<=?", endtime)
  655. }
  656. return db.Where("status = 1")
  657. }).Find(&drug).Error
  658. return drug, total, err
  659. }
  660. func GetDrugStockFlow(drugid int64, startime int64, endtime int64, page int64, limit int64, orgid int64) (list []*models.StDrugWarehouseInfo, total int64, err error) {
  661. db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1")
  662. table := XTReadDB().Table("xt_base_drug as t").Where("t.status =1 ")
  663. fmt.Println(table)
  664. offset := (page - 1) * limit
  665. if startime > 0 {
  666. db = db.Where("x.ctime >=?", startime)
  667. }
  668. if endtime > 0 {
  669. db = db.Where("x.ctime<=?", endtime)
  670. }
  671. if orgid > 0 {
  672. db = db.Where("x.org_id = ?", orgid)
  673. }
  674. if drugid > 0 {
  675. db = db.Where("x.drug_id = ?", drugid)
  676. }
  677. err = db.Joins("left join xt_base_drug as t on t.id = x.drug_id and t.status = 1 and t.org_id = ?", orgid).Select("x.id,x.warehousing_id,x.drug_id,x.number,x.product_date,x.expiry_date,x.warehousing_count,x.warehouseing_unit,x.max_unit,x.min_unit,x.stock_max_number,x.stock_min_number,x.price,x.total_price,x.dealer,x.remark,x.org_id,x.is_return,x.warehousing_order,x.type,x.retail_price,x.retail_total_price,x.batch_number,x.ctime,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,t.dose,t.dose_unit,t.last_price,t.manufacturer").Offset(offset).Count(&total).Order("x.ctime desc").Scan(&list).Error
  678. return list, total, err
  679. }
  680. func GetDrugStockOutFlow(drugid int64, startime int64, endtime int64, page int64, limit int64, orgid int64, stocktype int64) (list []*models.VmDrugWarehouseOutInfo, total int64, err error) {
  681. db := XTReadDB().Table("xt_drug_warehouse_out_info as x").Where("x.status = 1")
  682. table := XTReadDB().Table("xt_base_drug as t").Where("t.status = 1")
  683. fmt.Println(table)
  684. offset := (page - 1) * limit
  685. if startime > 0 {
  686. db = db.Where("x.ctime >=?", startime)
  687. }
  688. if endtime > 0 {
  689. db = db.Where("x.ctime<=?", endtime)
  690. }
  691. if orgid > 0 {
  692. db = db.Where("x.org_id = ?", orgid)
  693. }
  694. if drugid > 0 {
  695. db = db.Where("x.drug_id = ?", drugid)
  696. }
  697. if stocktype == 1 {
  698. db = db.Where("x.is_sys = 0")
  699. }
  700. if stocktype == 2 {
  701. db = db.Where("x.is_sys = 1")
  702. }
  703. err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.warehousing_out_target,x.count,x.price,x.total_price,x.product_date,x.expiry_date,x.org_id,x.remark,x.is_cancel,x.warehouse_out_order_number,x.type,x.dealer,x.manufacturer,x.is_sys,x.sys_record_time,x.retail_price,x.retail_total_price,x.warehouse_info_id,x.ctime,x.batch_number,x.count_unit,t.drug_name,t.drug_type,t.min_number,t.min_unit,t.max_unit").Joins("left join xt_base_drug as t on t.id = x.drug_id").Count(&total).Offset(offset).Limit(limit).Order("x.ctime desc").Scan(&list).Error
  704. return list, total, err
  705. }
  706. func GetBatchOrderDetail(drugid int64, orgid int64, page int64, limit int64, startime int64, endtime int64, start_first_time int64, end_first_time int64) (drug []*models.DrugWarehouseInfo, total int64, err error) {
  707. offset := (page - 1) * limit
  708. db := XTReadDB().Model(&drug).Where("status = 1 and is_check = 1")
  709. if drugid > 0 {
  710. db = db.Where("drug_id = ?", drugid)
  711. }
  712. if orgid > 0 {
  713. db = db.Where("org_id = ?", orgid)
  714. }
  715. if startime > 0 {
  716. db = db.Where("ctime >=?", startime)
  717. }
  718. if endtime > 0 {
  719. db = db.Where("ctime <=?", endtime)
  720. }
  721. if start_first_time > 0 {
  722. db = db.Where("expiry_date >=?", start_first_time)
  723. }
  724. if end_first_time > 0 {
  725. db = db.Where("expiry_date <=?", end_first_time)
  726. }
  727. err = db.Count(&total).Offset(offset).Limit(limit).Order("id desc").Find(&drug).Error
  728. return drug, total, err
  729. }
  730. func GetDrugCountList(startime int64, endtime int64, orgid int64) (info []*models.VmDrugWarehouseInfo, err error) {
  731. db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1")
  732. if startime > 0 {
  733. db = db.Where("x.ctime >=?", startime)
  734. }
  735. if endtime > 0 {
  736. db = db.Where("x.ctime<=?", endtime)
  737. }
  738. if orgid > 0 {
  739. db = db.Where("x.org_id = ?", orgid)
  740. }
  741. err = db.Select("sum(x.warehousing_count) as count,x.drug_id").Group("x.drug_id").Scan(&info).Error
  742. return info, err
  743. }
  744. func GetMinCountList(startime int64, endtime int64, orgid int64) (info []*models.DrugWarehouseInfo, err error) {
  745. db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1")
  746. if startime > 0 {
  747. db = db.Where("x.ctime >=?", startime)
  748. }
  749. if endtime > 0 {
  750. db = db.Where("x.ctime<=?", endtime)
  751. }
  752. if orgid > 0 {
  753. db = db.Where("x.org_id = ?", orgid)
  754. }
  755. err = db.Select("sum(x.warehousing_count) as warehousing_count,x.drug_id").Group("x.drug_id").Scan(&info).Error
  756. return info, err
  757. }
  758. func GetOutDrugCountList(startime int64, endtime int64, orgid int64) (info []*models.VmDrugWarehouseInfo, err error) {
  759. db := XTReadDB().Table("xt_drug_warehouse_out_info as x").Where("x.status = 1")
  760. if startime > 0 {
  761. db = db.Where("x.ctime >=?", startime)
  762. }
  763. if endtime > 0 {
  764. db = db.Where("x.ctime<=?", endtime)
  765. }
  766. if orgid > 0 {
  767. db = db.Where("x.org_id = ?", orgid)
  768. }
  769. err = db.Select("sum(x.count) as count,x.drug_id,x.count_unit").Group("x.drug_id").Find(&info).Error
  770. return info, err
  771. }
  772. func GetAutoDrugCountList(startime int64, endtime int64, orgid int64) (info []*models.DrugAutomaticReduceDetail, err error) {
  773. db := XTReadDB().Table("xt_drug_automatic_reduce_detail as x").Where("x.status = 1")
  774. if startime > 0 {
  775. db = db.Where("x.record_time >=?", startime)
  776. }
  777. if endtime > 0 {
  778. db = db.Where("x.record_time<=?", endtime)
  779. }
  780. if orgid > 0 {
  781. db = db.Where("x.org_id = ?", orgid)
  782. }
  783. err = db.Select("sum(x.count) as count,x.drug_id,x.count_unit").Find(&info).Error
  784. return info, err
  785. }
  786. func GetCancelDrugCountList(startime int64, endtime int64, orgid int64) (info []*models.DrugCancelStockInfo, err error) {
  787. db := XTReadDB().Table(" xt_drug_cancel_stock_info as x").Where("x.status = 1")
  788. if startime > 0 {
  789. db = db.Where("x.ctime >=?", startime)
  790. }
  791. if endtime > 0 {
  792. db = db.Where("x.ctime<=?", endtime)
  793. }
  794. if orgid > 0 {
  795. db = db.Where("x.org_id = ?", orgid)
  796. }
  797. err = db.Select("sum(x.count) as count,x.drug_id").Group("x.drug_id").Scan(&info).Error
  798. return info, err
  799. }
  800. func GetAllCountList(startime int64, endtime int64, orgid int64) (info []*models.DrugWarehouseInfo, err error) {
  801. db := XTReadDB().Table("xt_drug_warehouse_info as x").Where("x.status = 1")
  802. if startime > 0 {
  803. db = db.Where("x.ctime >=?", startime)
  804. }
  805. if endtime > 0 {
  806. db = db.Where("x.ctime<=?", endtime)
  807. }
  808. if orgid > 0 {
  809. db = db.Where("x.org_id = ?", orgid)
  810. }
  811. err = db.Find(&info).Error
  812. return info, err
  813. }
  814. func GetSingleOrderDetail(id int64, orgid int64) (info []*models.VmDrugWarehouseOutInfo, err error) {
  815. db := XTReadDB().Table("xt_drug_warehouse_out_info as x").Where("x.status = 1 and x.count>0")
  816. table := XTReadDB().Table("xt_base_drug as t").Where("t.status = 1")
  817. fmt.Println(table)
  818. if orgid > 0 {
  819. db = db.Where("x.org_id = ?", orgid)
  820. }
  821. if id > 0 {
  822. db = db.Where("x.warehouse_out_id in(?)", id)
  823. }
  824. err = db.Select("x.id,x.warehouse_out_id,x.drug_id,sum(x.count) as count,x.count_unit,x.price,x.product_date,x.expiry_date,x.remark,x.is_cancel,x.warehouse_out_order_number,x.type,x.dealer,t.manufacturer,x.is_sys,x.sys_record_time,x.retail_price as total_price,x.retail_total_price,x.storehouse_id,x.stock_count,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,x.number,x.batch_number,x.admin_user_id,t.dose,t.dose_unit,t.last_price,t.min_price,t.medical_insurance_number,t.retail_price ,x.warehouse_info_id,x.class_type").Joins("left join xt_base_drug as t on t.id = x.drug_id").Group("x.drug_id").Scan(&info).Error
  825. return info, err
  826. }
  827. func GetDrugWarehouseOutDetailSeventy(id int64, org_id int64) (info []*models.DrugWarehouseOutInfo, err error) {
  828. err = XTReadDB().Where("warehouse_out_id in(?) and org_id = ? and status =1", id, org_id).Find(&info).Error
  829. return info, err
  830. }
  831. func GetDrugWarehouseOutDetailNighty(id int64, org_id int64) (info []*models.DrugWarehouseOutInfoNight, err error) {
  832. err = XTReadDB().Where("warehouse_out_id in(?) and org_id = ? and status =1", id, org_id).Preload("Drug", "org_id = ? and status = 1", org_id).Find(&info).Error
  833. return info, err
  834. }
  835. func GetDrugStockFlowDetail(record_time int64, orgid int64) (drugflow []*models.XtDrugAutomaticReduceDetail, err error) {
  836. err = XTReadDB().Where("record_time = ? and org_id = ? and status = 1", record_time, orgid).Preload("XtBaseDrug", "status = 1").Find(&drugflow).Error
  837. return drugflow, err
  838. }
  839. func GetSingeOrderFlow(id int64, orgid int64) (outInfo []*models.VmDrugWarehouseOutInfo, err error) {
  840. db := XTReadDB().Table("xt_drug_warehouse_out_info as x").Where("x.status = 1")
  841. table := XTReadDB().Table("xt_base_drug as t").Where("t.status = 1")
  842. fmt.Println(table)
  843. if orgid > 0 {
  844. db = db.Where("x.org_id = ?", orgid)
  845. }
  846. if id > 0 {
  847. db = db.Where("x.warehouse_out_id in(?)", id)
  848. }
  849. err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.count,x.count_unit,x.price,x.total_price,x.product_date,x.expiry_date,x.remark,x.is_cancel,x.warehouse_out_order_number,x.type,x.dealer,x.manufacturer,x.is_sys,x.sys_record_time,x.retail_price,x.retail_total_price,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,t.retail_price,x.number,x.batch_number,t.dose,t.dose_unit,t.last_price,t.min_price").Joins("left join xt_base_drug as t on t.id = x.drug_id").Scan(&outInfo).Error
  850. return outInfo, err
  851. }
  852. func GetAllSingleDrugDetail(id int64, orgid int64) (outInfo []*models.VmDrugWarehouseOutInfo, err error) {
  853. db := XTReadDB().Table("xt_drug_warehouse_out_info as x").Where("x.status = 1")
  854. table := XTReadDB().Table("xt_base_drug as t").Where("t.status = 1")
  855. fmt.Println(table)
  856. if orgid > 0 {
  857. db = db.Where("x.org_id = ?", orgid)
  858. }
  859. if id > 0 {
  860. db = db.Where("x.warehouse_out_id = ?", id)
  861. }
  862. err = db.Select("x.id,x.warehouse_out_id,x.drug_id,x.count,x.count_unit,x.price,x.total_price,x.product_date,x.expiry_date,x.remark,x.is_cancel,x.warehouse_out_order_number,x.type,x.dealer,t.manufacturer,x.is_sys,x.sys_record_time,x.retail_price,x.retail_total_price,t.drug_name,t.drug_type,t.max_unit,t.min_unit,t.min_number,x.number,x.batch_number,t.dose,t.dose_unit,t.last_price,t.min_price").Joins("left join xt_base_drug as t on t.id = x.drug_id").Scan(&outInfo).Error
  863. return outInfo, err
  864. }
  865. func GetDrugFlowList(id int64, orgid int64) (stockflow []*models.DrugFlow, err error) {
  866. err = XTReadDB().Where("warehouse_out_id in(?) and user_org_id = ? and status = 1", id, orgid).Preload("BaseDrugLib", "org_id = ? and status = 1", orgid).Preload("DrugWarehouseInfoOne", "org_id = ? and status = 1", orgid).Find(&stockflow).Error
  867. return stockflow, err
  868. }
  869. func GetDrugFlowListGroupById(id int64, orgid int64) (drugFlow []*models.DrugFlowNight, err error) {
  870. err = XTReadDB().Where("warehouse_out_id in(?) and user_org_id = ? and status = 1", id, orgid).Group("warehousing_detail_id").Find(&drugFlow).Error
  871. return drugFlow, err
  872. }
  873. func GetDrugFlowListGroupByIdOne(id int64, orgid int64) (drugFlow []*models.DrugFlow, err error) {
  874. err = XTReadDB().Where("warehouse_out_id in(?) and user_org_id = ? and status = 1", id, orgid).Group("warehousing_detail_id").Find(&drugFlow).Error
  875. return drugFlow, err
  876. }
  877. func FindDrugStockUserDetailByIdThree(id int64, record_time int64, org_id int64) (user []*DrugAutomaticReduceDetail, err error, total int64) {
  878. db := readDb.Model(&user)
  879. db = db.Preload("Drug", "org_id = ? AND status = 1", org_id)
  880. db = db.Preload("Patients", "user_org_id = ? AND status = 1", org_id)
  881. db = db.Preload("DrugWarehouseOutInfo", "drug_id = ? and sys_record_time = ? and status = 1 and org_id = ?", id, record_time, org_id)
  882. db = db.Where("status = 1 AND org_id = ? AND drug_id = ? AND record_time =?", org_id, id, record_time)
  883. db = db.Count(&total)
  884. err = db.Find(&user).Error
  885. return user, err, total
  886. }
  887. func FindeDrugWarehouserInfo(ware_out_id int64, drug_id int64, orgid int64) (outInfo []*models.DrugWarehouseOutInfo, err error) {
  888. err = XTReadDB().Where("warehouse_out_id = ? and drug_id = ? and org_id = ? and status = 1", ware_out_id, drug_id, orgid).Find(&outInfo).Error
  889. return outInfo, err
  890. }
  891. func GetDrugFlowBatch(ware_out_id int64, drug_id int64, orgid int64) (flow []*models.DrugFlow, err error) {
  892. err = XTReadDB().Where("warehouse_out_id = ? and drug_id = ? and user_org_id = ? and status = 1", ware_out_id, drug_id, orgid).Find(&flow).Error
  893. return flow, err
  894. }
  895. func GetDrugWarehouseOutInfoFlow(drug_id int64, start_time int64, end_time int64, user_org_id int64) (info []*models.XtDrugWarehouseOutInfo, err error) {
  896. db := XTReadDB().Model(&info).Where("status = 1")
  897. if start_time > 0 {
  898. db = db.Where("sys_record_time >=?", start_time)
  899. }
  900. if end_time > 0 {
  901. db = db.Where("sys_record_time <=?", end_time)
  902. }
  903. if user_org_id > 0 {
  904. db = db.Where("user_org_id = ?", user_org_id)
  905. }
  906. err = db.Find(&info).Error
  907. return info, err
  908. }
  909. func GetAllBaseDrugListTwenty(orgid int64) (drug []*models.BaseDrugLibTwenty, err error) {
  910. err = XTReadDB().Model(&drug).Where("org_id = ? and status = 1 AND find_in_set('停用',drug_status) = 0", orgid).Find(&drug).Error
  911. return drug, err
  912. }
  913. func GetAllBaseDrugListTwentyOne(orgid int64) (drug []*models.BaseDrugLibTwenty, err error) {
  914. err = XTReadDB().Model(&drug).Where("org_id = ? and status = 1", orgid).Find(&drug).Error
  915. return drug, err
  916. }
  917. func UpdateBaseDrugList(drug_id int64, specification_name string) error {
  918. err := XTWriteDB().Model(&models.XtBaseDrug{}).Where("id = ? and status=1", drug_id).Updates(map[string]interface{}{"specification_name": specification_name}).Error
  919. return err
  920. }
  921. func GetScheduleConfigByOrgId(org_id int64) (config models.ScheduleConfig, err error) {
  922. err = XTReadDB().Model(&models.ScheduleConfig{}).Where("user_org_id = ?", org_id).First(&config).Error
  923. return config, err
  924. }
  925. func SaveScheduleConfig(config models.ScheduleConfig) (err error) {
  926. err = XTWriteDB().Save(&config).Error
  927. return err
  928. }
  929. func CreateScheduleConfig(config models.ScheduleConfig) (err error) {
  930. err = XTWriteDB().Create(&config).Error
  931. return err
  932. }
  933. func GetScheduleConfigById(id int64) (config models.ScheduleConfig, err error) {
  934. err = XTReadDB().Model(&models.ScheduleConfig{}).Where("id = ?", id).First(&config).Error
  935. return config, err
  936. }
  937. func CreateCheckRemindConfig(config *models.XtCheckRemindCinfig) (err error) {
  938. err = XTWriteDB().Create(&config).Error
  939. return err
  940. }
  941. func GetCheckRemindConfigById(user_org_id int64) (config models.XtCheckRemindCinfig, err error) {
  942. err = XTReadDB().Model(&models.XtCheckRemindCinfig{}).Where("user_org_id = ?", user_org_id).First(&config).Error
  943. return config, err
  944. }
  945. func GetCheckRemindConfigByIdTwo(id int64) (config models.XtCheckRemindCinfig, err error) {
  946. err = XTReadDB().Model(&models.XtCheckRemindCinfig{}).Where("id = ?", id).First(&config).Error
  947. return config, err
  948. }
  949. func SaveCheckRemindConfig(config *models.XtCheckRemindCinfig) (err error) {
  950. err = XTWriteDB().Save(&config).Error
  951. return err
  952. }
  953. //func Get(id int64)(config models.ScheduleConfig, err error){
  954. // err = XTReadDB().Model(&models.ScheduleConfig{}).Where("id = ?", id).First(&config).Error
  955. // return config, err
  956. //}
  957. func GetMobileScheduleList(orgid int64) (schedule []*models.MyVmBloodSchedule, err error) {
  958. err = XTReadDB().Where("user_org_id = ? and status= 1 and schedule_date=1676563200", orgid).Preload("SchedualPatient", "user_org_id = ? and status = 1", orgid).Find(&schedule).Error
  959. return schedule, err
  960. }
  961. func GetPrescriptionList(patient_id int64, schedule_date int64, user_org_id int64) (models.DialysisPrescription, error) {
  962. prescription := models.DialysisPrescription{}
  963. err := XTReadDB().Where("patient_id = ? and record_date =? and user_org_id = ? and status =1", patient_id, schedule_date, user_org_id).Find(&prescription).Error
  964. return prescription, err
  965. }
  966. func GetLastMonitorRecordList(patient_id int64, schedule_date int64, user_org_id int64) (models.MonitoringRecord, error) {
  967. record := models.MonitoringRecord{}
  968. var err error
  969. if user_org_id != 10060 {
  970. err = XTReadDB().Where("patient_id =? and monitoring_date = ? and user_org_id = ? and status = 1", patient_id, schedule_date, user_org_id).Order("operate_time desc").Last(&record).Error
  971. }
  972. if user_org_id == 10060 {
  973. err = XTReadDB().Where("patient_id =? and monitoring_date = ? and user_org_id = ? and status = 1", patient_id, schedule_date, user_org_id).Order("id desc").Last(&record).Error
  974. }
  975. return record, err
  976. }
  977. func GetLastAfter(patient_id int64, schedule_date int64, user_org_id int64) (models.XtAssessmentAfterDislysis, error) {
  978. dislysis := models.XtAssessmentAfterDislysis{}
  979. err := XTReadDB().Where("patient_id = ? and assessment_date = ? and user_org_id =? and status= 1", patient_id, schedule_date, user_org_id).Find(&dislysis).Error
  980. return dislysis, err
  981. }
  982. func GetDialysisInformationByRecordDate(patient_id int64, record_date int64, user_org_id int64, module int64) (models.XtDialysisInformation, error) {
  983. information := models.XtDialysisInformation{}
  984. err := XTReadDB().Where("patient_id = ? and record_date = ? and user_org_id = ? and status=1 and module = ?", patient_id, record_date, user_org_id, module).Find(&information).Error
  985. return information, err
  986. }
  987. func GetDialysisInformationByRecordDateOne(patient_id int64, record_date int64, user_org_id int64) (models.XtDialysisInformation, error) {
  988. information := models.XtDialysisInformation{}
  989. err := XTReadDB().Where("patient_id = ? and record_date = ? and user_org_id = ? and status=1", patient_id, record_date, user_org_id).Find(&information).Error
  990. return information, err
  991. }
  992. func SaveDialysisInformation(information models.XtDialysisInformation) error {
  993. err := XTWriteDB().Create(&information).Error
  994. return err
  995. }
  996. func UpdateInformationByRecordDate(patient_id int64, record_date int64, user_org_id int64, application_date int64, remark string) error {
  997. err := XTWriteDB().Model(&models.XtDialysisInformation{}).Where("patient_id = ? and record_date = ? and user_org_id = ? and status = 1", patient_id, record_date, user_org_id).Update(map[string]interface{}{"application_status": 2, "application_date": application_date, "remark": remark}).Error
  998. return err
  999. }
  1000. func GetMobileInformation(limit int64, page int64, application_status int64, orgid int64) (infor []*models.XtDialysisInformation, total int64, err error) {
  1001. db := XTReadDB().Model(&infor).Where("status=1")
  1002. if orgid > 0 {
  1003. db = db.Where("user_org_id = ?", orgid)
  1004. }
  1005. if application_status > 0 {
  1006. db = db.Where("application_status = ?", application_status)
  1007. }
  1008. err = db.Count(&total).Offset(limit * (page - 1)).Limit(limit).Order("ctime desc").Find(&infor).Error
  1009. return infor, total, err
  1010. }
  1011. func GetMobileInformationOne(limit int64, page int64, orgid int64) (infor []*models.XtDialysisInformation, total int64, err error) {
  1012. db := XTReadDB().Model(&infor).Where("status=1")
  1013. if orgid > 0 {
  1014. db = db.Where("user_org_id = ?", orgid)
  1015. }
  1016. err = db.Count(&total).Offset(limit * (page - 1)).Limit(limit).Order("ctime desc").Find(&infor).Error
  1017. return infor, total, err
  1018. }
  1019. func CheckMobileInformation(id int64, application_status int64, checker int64, checker_time int64) error {
  1020. err := XTWriteDB().Model(&models.XtDialysisInformation{}).Where("id = ? and status= 1", id).Update(map[string]interface{}{"application_status": application_status, "checker": checker, "check_time": checker_time}).Error
  1021. return err
  1022. }
  1023. func GetPrescriptionPatientList(orgID int64, keywords string) (patient []*models.Patients, err error) {
  1024. fmt.Println("keyworsosososo", keywords)
  1025. db := readDb.Model(&models.Patients{}).Where("user_org_id=? and status=1", orgID)
  1026. if len(keywords) > 0 {
  1027. likekey := "%" + keywords + "%"
  1028. err = db.Where("(name LIKE ?)", likekey).Find(&patient).Error
  1029. } else {
  1030. err = db.Find(&patient).Error
  1031. }
  1032. return
  1033. }
  1034. func GetPrescriptionLogList(patient_id int64, page int64, limit int64, record_date int64, orgId int64) (prescriptionlog []*models.XtDialysisPrescriptionLog, total int64, err error) {
  1035. offset := (page - 1) * limit
  1036. db := XTReadDB().Model(prescriptionlog).Where("status =1")
  1037. if patient_id > 0 {
  1038. db = db.Where("patient_id = ?", patient_id)
  1039. }
  1040. if record_date > 0 {
  1041. db = db.Where("record_date = ?", record_date)
  1042. }
  1043. if orgId > 0 {
  1044. db = db.Where("user_org_id = ? ", orgId)
  1045. }
  1046. err = db.Count(&total).Offset(offset).Limit(limit).Order("record_date desc").Find(&prescriptionlog).Error
  1047. return prescriptionlog, total, err
  1048. }
  1049. func GetBeforLogList(patient_id int64, page int64, limit int64, record_date int64, orgId int64) (befor []*models.XtAssessmentBeforeDislysisLog, total int64, err error) {
  1050. offset := (page - 1) * limit
  1051. db := XTReadDB().Model(befor).Where("status =1")
  1052. if patient_id > 0 {
  1053. db = db.Where("patient_id = ?", patient_id)
  1054. }
  1055. if record_date > 0 {
  1056. db = db.Where("record_date = ?", record_date)
  1057. }
  1058. if orgId > 0 {
  1059. db = db.Where("user_org_id = ? ", orgId)
  1060. }
  1061. err = db.Count(&total).Offset(offset).Limit(limit).Order("record_date desc").Find(&befor).Error
  1062. return befor, total, err
  1063. }
  1064. func GetAllPatientLog(orgid int64) (patients []*models.VMMonitorPatients, err error) {
  1065. err = XTReadDB().Where("user_org_id = ? and status =1", orgid).Find(&patients).Error
  1066. return patients, err
  1067. }
  1068. func GetAllDoctorLog(orgid int64) (appRole []*models.App_Role, err error) {
  1069. err = UserReadDB().Where("org_id = ? AND status = 1", orgid).Find(&appRole).Error
  1070. return appRole, err
  1071. }
  1072. func GetDocLogList(patient_id int64, page int64, limit int64, record_date int64, orgId int64) (doctorlist []*models.XtDoctorAdviceLog, total int64, err error) {
  1073. offset := (page - 1) * limit
  1074. db := XTReadDB().Model(doctorlist).Where("status =1")
  1075. if patient_id > 0 {
  1076. db = db.Where("patient_id = ?", patient_id)
  1077. }
  1078. if record_date > 0 {
  1079. db = db.Where("record_date = ?", record_date)
  1080. }
  1081. if orgId > 0 {
  1082. db = db.Where("user_org_id = ? ", orgId)
  1083. }
  1084. err = db.Count(&total).Offset(offset).Limit(limit).Order("record_date desc").Find(&doctorlist).Error
  1085. return doctorlist, total, err
  1086. }
  1087. func GetMonitorLogList(patient_id int64, page int64, limit int64, record_date int64, orgId int64) (monitorlist []*models.XtMonitorRecordLog, total int64, err error) {
  1088. offset := (page - 1) * limit
  1089. db := XTReadDB().Model(monitorlist).Where("status =1")
  1090. if patient_id > 0 {
  1091. db = db.Where("patient_id = ?", patient_id)
  1092. }
  1093. if record_date > 0 {
  1094. db = db.Where("record_date = ?", record_date)
  1095. }
  1096. if orgId > 0 {
  1097. db = db.Where("user_org_id = ? ", orgId)
  1098. }
  1099. err = db.Count(&total).Offset(offset).Limit(limit).Order("record_date desc").Find(&monitorlist).Error
  1100. return monitorlist, total, err
  1101. }
  1102. func GetAfterLogList(patient_id int64, page int64, limit int64, record_date int64, orgId int64) (afterlist []*models.XtMonitorRecordLog, total int64, err error) {
  1103. offset := (page - 1) * limit
  1104. db := XTReadDB().Model(afterlist).Where("status =1")
  1105. if patient_id > 0 {
  1106. db = db.Where("patient_id = ?", patient_id)
  1107. }
  1108. if record_date > 0 {
  1109. db = db.Where("record_date = ?", record_date)
  1110. }
  1111. if orgId > 0 {
  1112. db = db.Where("user_org_id = ? ", orgId)
  1113. }
  1114. err = db.Count(&total).Offset(offset).Limit(limit).Order("record_date desc").Find(&afterlist).Error
  1115. return afterlist, total, err
  1116. }
  1117. func GetGatherSettingByOrgId(user_org_id int64) (models.XtDialysisGatherSetting, error) {
  1118. gatherSetting := models.XtDialysisGatherSetting{}
  1119. err := XTReadDB().Where("user_org_id =? and status =1", user_org_id).Find(&gatherSetting).Error
  1120. return gatherSetting, err
  1121. }
  1122. func CreateGather(setting models.XtDialysisGatherSetting) error {
  1123. err := XTWriteDB().Create(&setting).Error
  1124. return err
  1125. }
  1126. func SaveGather(setting models.XtDialysisGatherSetting) error {
  1127. err := XTWriteDB().Save(&setting).Error
  1128. return err
  1129. }
  1130. func GetGatherSetting(user_org_id int64) (models.XtDialysisGatherSetting, error) {
  1131. gatherSetting := models.XtDialysisGatherSetting{}
  1132. err := XTReadDB().Where("user_org_id = ? and status =1", user_org_id).Find(&gatherSetting).Error
  1133. return gatherSetting, err
  1134. }
  1135. func GetMobiledialysiOrder(user_org_id int64, patient_id int64, record_date int64) (models.Schedule, error) {
  1136. dialysisOrder := models.Schedule{}
  1137. err := XTReadDB().Where("user_org_id =? and patient_id =? and schedule_date =? and status=1", user_org_id, patient_id, record_date).Find(&dialysisOrder).Error
  1138. return dialysisOrder, err
  1139. }
  1140. func GetPrescriptionListByToDay(user_org_id int64, patient_id int64, record_Date int64) (models.HisPrescriptionInfo, error) {
  1141. prescriptionInfo := models.HisPrescriptionInfo{}
  1142. err := XTReadDB().Where("user_org_id = ? and patient_id = ? and record_date = ? and status =1", user_org_id, patient_id, record_Date).Find(&prescriptionInfo).Error
  1143. return prescriptionInfo, err
  1144. }