3
2

limscreatereportService.go 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. package limscreatereport
  2. import (
  3. "dashoo.cn/backend/api/business/auditsetting"
  4. "strings"
  5. "dashoo.cn/backend/api/business/limsdataentry"
  6. "fmt"
  7. "strconv"
  8. "dashoo.cn/backend/api/business/workflow"
  9. "dashoo.cn/backend/api/business/customer"
  10. "dashoo.cn/backend/api/business/testtype"
  11. . "dashoo.cn/backend/api/mydb"
  12. "dashoo.cn/utils"
  13. . "dashoo.cn/utils/db"
  14. "github.com/go-xorm/xorm"
  15. )
  16. type CreateReportService struct {
  17. MyServiceBase
  18. }
  19. func GetCreateReportService(xormEngine *xorm.Engine) *CreateReportService {
  20. s := new(CreateReportService)
  21. s.DBE = xormEngine
  22. return s
  23. }
  24. //关联委托方信息获取委托详情
  25. func (s *CreateReportService) GetEntrustInfoWithCustomor(entrustable string, where string) (entity LimsCreateReport) {
  26. if where == "" {
  27. where = " 1=1 "
  28. }
  29. var sql string
  30. sql = `select *
  31. from ` + entrustable + `
  32. where ` + where
  33. s.DBE.Sql(sql).Get(&entity)
  34. return
  35. }
  36. //获取报告数
  37. func (s *CreateReportService) GetReportCount(reporttable string, where string) int64 {
  38. var err error
  39. var total int64
  40. //获取总记录数
  41. if where == "" {
  42. where = "1=1"
  43. }
  44. sqlCount := `select count(*) from ` + reporttable + ` where ` + where
  45. resultsSlice, err := s.DBE.Query(sqlCount)
  46. LogError(err)
  47. if len(resultsSlice) > 0 {
  48. results := resultsSlice[0]
  49. for _, value := range results {
  50. total, err = strconv.ParseInt(string(value), 10, 64)
  51. LogError(err)
  52. break
  53. }
  54. }
  55. return total
  56. }
  57. //获取报告列表
  58. func (s *CreateReportService) GetCreateReportList(createReportTable string, where string) (entityList []LimsCreateReport) {
  59. if where == "" {
  60. where = " 1=1 "
  61. }
  62. var sql string
  63. sql = `select *
  64. from ` + createReportTable + `
  65. where ` + where
  66. s.DBE.Sql(sql).Get(&entityList)
  67. return
  68. }
  69. //获取前台列表需要的字典集合
  70. func (s *CreateReportService) GetDictList(accCode string, tableNameList map[string]string) map[string]interface{} {
  71. dictList := make(map[string]interface{})
  72. whereStr := ""
  73. //customer列表
  74. var customerList []customer.CustomerDict
  75. s.GetEntitysByWhere(accCode+tableNameList["CustomerName"], whereStr, &customerList)
  76. dictList["customerList"] = customerList
  77. var testPackageTypesList []testtype.TestPackageTypesDict
  78. s.GetEntitysByWhere(accCode+tableNameList["TestPackageTypesName"], "ParentId = 0", &testPackageTypesList)
  79. dictList["projectList"] = testPackageTypesList
  80. //添加其它列表
  81. return dictList
  82. }
  83. /**
  84. * 获取报告新增列表
  85. */
  86. func (s *CreateReportService) GetDataEntryEntrust(dataentrytable string, taskbalancetable string, entrustable string, pageIndex, itemsPerPage int64, order, where string) (int64, []DataEntryEntrustModel) {
  87. var err error
  88. var total int64
  89. if order != "" {
  90. order = " order by " + order
  91. }
  92. //获取总记录数
  93. if where == "" {
  94. where = "1=1"
  95. }
  96. sqlCount := `select count(*) from ` + entrustable + ` a
  97. left join ` + taskbalancetable + ` b on a.Id=b.EId
  98. left join ` + dataentrytable + ` c on c.TaskId=b.Id where ` + where
  99. var sql string
  100. sql = ` select a.*,c.*,b.EId,c.Id DataEntryId,c.CreateUserId DataEntryUserId,c.CreateBy DataEntryBy from ` + entrustable + ` a left join ` + taskbalancetable + ` b on a.Id=b.EId left join ` + dataentrytable + ` c on c.TaskId=b.Id where ` + where + order +
  101. ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  102. fmt.Println(sql)
  103. List := make([]DataEntryEntrustModel, 0)
  104. utils.DBE.Sql(sql).Find(&List)
  105. resultsSlice, err := s.DBE.Query(sqlCount)
  106. LogError(err)
  107. if len(resultsSlice) > 0 {
  108. results := resultsSlice[0]
  109. for _, value := range results {
  110. total, err = strconv.ParseInt(string(value), 10, 64)
  111. LogError(err)
  112. break
  113. }
  114. }
  115. return total, List
  116. }
  117. /**
  118. * 获取报告名称Id
  119. */
  120. func (s *CreateReportService) GetTemplate(entrustable string, testpackagetable string, where string) (entity ReportTemplateModel) {
  121. //获取总记录数
  122. if where == "" {
  123. where = "1=1"
  124. }
  125. var sql string
  126. sql = ` select a.*,b.TemplateId,b.TemplateName,b.FullName from ` + entrustable + ` a left join ` + testpackagetable + ` b on a.ProjectTypeId=b.Id where ` + where
  127. fmt.Println(sql)
  128. s.DBE.Sql(sql).Get(&entity)
  129. return
  130. }
  131. /**
  132. * 获取报告Url
  133. */
  134. func (s *CreateReportService) GetReportUrl(reporttable string, historytable string, order string, where string) []ReportModel {
  135. //获取总记录数
  136. if where == "" {
  137. where = "1=1"
  138. }
  139. if order != "" {
  140. order = " order by " + order
  141. }
  142. var sql string
  143. sql = ` select a.*,b.* from ` + reporttable + ` a left join ` + historytable + ` b on a.Id=b.ParentId where ` + where + order
  144. fmt.Println(sql)
  145. List := make([]ReportModel, 0)
  146. utils.DBE.Sql(sql).Find(&List)
  147. return List
  148. }
  149. func (this *CreateReportService) CreateDataentry(DeptID string,AccCode string, taskbalancename string, entrustname string, dataentryname string,docname string,docdetailname string, reportmodel LimsCreateReport, DataEntryCode string, departartmentId string,RecheckUserId string,ReCheckUser string) (int,int) {
  150. var err error
  151. //获取TemplateCode
  152. svc := limsdataentry.GetLimsDataEntryService(utils.DBE)
  153. var templatedata []limsdataentry.LimsDocTemplateModel
  154. var balancedata limsdataentry.LimsTaskBalance
  155. var entrustmaindata limsdataentry.LimsEntrustMain
  156. where := "EId = " + utils.ToStr(reportmodel.EId)
  157. enwhere := "Id = " + utils.ToStr(reportmodel.EId)
  158. svc.GetEntityByWhere(taskbalancename, where, &balancedata)
  159. svc.GetEntityByWhere(entrustname, enwhere, &entrustmaindata)
  160. //创建数据录入记录
  161. var dataentryentity limsdataentry.LimsDateEntry
  162. orderby := "b.Id desc"
  163. where2 := " b.Id= " + utils.ToStr(balancedata.DataDocId)
  164. templatedata = svc.GetPagingTemplateSerch(docname, docdetailname, orderby, where2)
  165. fileurl := strings.Split(templatedata[0].FileURL, "|")
  166. dataentryentity.DataEntryCode = DataEntryCode + "-复检"
  167. dataentryentity.TaskId = balancedata.Id
  168. dataentryentity.DocId = balancedata.DataDocId
  169. dataentryentity.DocType = balancedata.DataDoc
  170. dataentryentity.DocAddress = fileurl[0]
  171. dataentryentity.EId = entrustmaindata.Id
  172. dataentryentity.Recheck = 1
  173. dataentryentity.CustomerId = entrustmaindata.CustomerId
  174. dataentryentity.CustomerName = entrustmaindata.CustomerName
  175. dataentryentity.PositionCheck = entrustmaindata.AddressName
  176. dataentryentity.PositionCheckId = entrustmaindata.AddressId
  177. dataentryentity.DocName = fileurl[1]
  178. dataentryentity.DocVersion = "v1"
  179. dataentryentity.CheckStatus = 0
  180. dataentryentity.CreateBy = ReCheckUser
  181. dataentryentity.CreateUserId, _ = utils.StrTo(RecheckUserId).Int()
  182. _, err = svc.InsertEntityBytbl(dataentryname, &dataentryentity)
  183. //启动数据录入工作流
  184. svcActiviti := workflow.GetActivitiService(utils.DBE)
  185. var processInstanceId string
  186. var RoleSet auditsetting.BaseOilAuditSetting
  187. rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
  188. rsvc.GetAuditStepRoleEntity("Base_OilAuditSetting",DeptID,workflow.DATAAUDIT, &RoleSet)
  189. processInstanceId = svcActiviti.StartProcess(RoleSet.WorkFlowCord, strconv.Itoa(dataentryentity.Id), RecheckUserId)
  190. //switch departartmentId {
  191. //case "100000150":
  192. // processInstanceId = svcActiviti.StartProcess(workflow.TJZ_DATA_KEY, strconv.Itoa(dataentryentity.Id), RecheckUserId)
  193. //case "100000151":
  194. // processInstanceId = svcActiviti.StartProcess(workflow.YX_DATA_KEY, strconv.Itoa(dataentryentity.Id), RecheckUserId)
  195. //}
  196. dataentryentity.DocKey = processInstanceId
  197. err = this.UpdateEntityBytbl(dataentryname, dataentryentity.Id, &dataentryentity, []string{"DocKey"})
  198. fmt.Println(err)
  199. return dataentryentity.Id,dataentryentity.TaskId
  200. }