| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- package limscreatereport
- import (
- "dashoo.cn/backend/api/business/auditsetting"
- "strings"
- "dashoo.cn/backend/api/business/limsdataentry"
- "fmt"
- "strconv"
- "dashoo.cn/backend/api/business/workflow"
- "dashoo.cn/backend/api/business/customer"
- "dashoo.cn/backend/api/business/testtype"
- . "dashoo.cn/backend/api/mydb"
- "dashoo.cn/utils"
- . "dashoo.cn/utils/db"
- "github.com/go-xorm/xorm"
- )
- type CreateReportService struct {
- MyServiceBase
- }
- func GetCreateReportService(xormEngine *xorm.Engine) *CreateReportService {
- s := new(CreateReportService)
- s.DBE = xormEngine
- return s
- }
- //关联委托方信息获取委托详情
- func (s *CreateReportService) GetEntrustInfoWithCustomor(entrustable string, where string) (entity LimsCreateReport) {
- if where == "" {
- where = " 1=1 "
- }
- var sql string
- sql = `select *
- from ` + entrustable + `
- where ` + where
- s.DBE.Sql(sql).Get(&entity)
- return
- }
- //获取报告数
- func (s *CreateReportService) GetReportCount(reporttable string, where string) int64 {
- var err error
- var total int64
- //获取总记录数
- if where == "" {
- where = "1=1"
- }
- sqlCount := `select count(*) from ` + reporttable + ` where ` + where
- resultsSlice, err := s.DBE.Query(sqlCount)
- LogError(err)
- if len(resultsSlice) > 0 {
- results := resultsSlice[0]
- for _, value := range results {
- total, err = strconv.ParseInt(string(value), 10, 64)
- LogError(err)
- break
- }
- }
- return total
- }
- //获取报告列表
- func (s *CreateReportService) GetCreateReportList(createReportTable string, where string) (entityList []LimsCreateReport) {
- if where == "" {
- where = " 1=1 "
- }
- var sql string
- sql = `select *
- from ` + createReportTable + `
- where ` + where
- s.DBE.Sql(sql).Get(&entityList)
- return
- }
- //获取前台列表需要的字典集合
- func (s *CreateReportService) GetDictList(accCode string, tableNameList map[string]string) map[string]interface{} {
- dictList := make(map[string]interface{})
- whereStr := ""
- //customer列表
- var customerList []customer.CustomerDict
- s.GetEntitysByWhere(accCode+tableNameList["CustomerName"], whereStr, &customerList)
- dictList["customerList"] = customerList
- var testPackageTypesList []testtype.TestPackageTypesDict
- s.GetEntitysByWhere(accCode+tableNameList["TestPackageTypesName"], "ParentId = 0", &testPackageTypesList)
- dictList["projectList"] = testPackageTypesList
- //添加其它列表
- return dictList
- }
- /**
- * 获取报告新增列表
- */
- func (s *CreateReportService) GetDataEntryEntrust(dataentrytable string, taskbalancetable string, entrustable string, pageIndex, itemsPerPage int64, order, where string) (int64, []DataEntryEntrustModel) {
- var err error
- var total int64
- if order != "" {
- order = " order by " + order
- }
- //获取总记录数
- if where == "" {
- where = "1=1"
- }
- sqlCount := `select count(*) from ` + entrustable + ` a
- left join ` + taskbalancetable + ` b on a.Id=b.EId
- left join ` + dataentrytable + ` c on c.TaskId=b.Id where ` + where
- var sql string
- 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 +
- ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
- fmt.Println(sql)
- List := make([]DataEntryEntrustModel, 0)
- utils.DBE.Sql(sql).Find(&List)
- resultsSlice, err := s.DBE.Query(sqlCount)
- LogError(err)
- if len(resultsSlice) > 0 {
- results := resultsSlice[0]
- for _, value := range results {
- total, err = strconv.ParseInt(string(value), 10, 64)
- LogError(err)
- break
- }
- }
- return total, List
- }
- /**
- * 获取报告名称Id
- */
- func (s *CreateReportService) GetTemplate(entrustable string, testpackagetable string, where string) (entity ReportTemplateModel) {
- //获取总记录数
- if where == "" {
- where = "1=1"
- }
- var sql string
- sql = ` select a.*,b.TemplateId,b.TemplateName,b.FullName from ` + entrustable + ` a left join ` + testpackagetable + ` b on a.ProjectTypeId=b.Id where ` + where
- fmt.Println(sql)
- s.DBE.Sql(sql).Get(&entity)
- return
- }
- /**
- * 获取报告Url
- */
- func (s *CreateReportService) GetReportUrl(reporttable string, historytable string, order string, where string) []ReportModel {
- //获取总记录数
- if where == "" {
- where = "1=1"
- }
- if order != "" {
- order = " order by " + order
- }
- var sql string
- sql = ` select a.*,b.* from ` + reporttable + ` a left join ` + historytable + ` b on a.Id=b.ParentId where ` + where + order
- fmt.Println(sql)
- List := make([]ReportModel, 0)
- utils.DBE.Sql(sql).Find(&List)
- return List
- }
- 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) {
- var err error
- //获取TemplateCode
- svc := limsdataentry.GetLimsDataEntryService(utils.DBE)
- var templatedata []limsdataentry.LimsDocTemplateModel
- var balancedata limsdataentry.LimsTaskBalance
- var entrustmaindata limsdataentry.LimsEntrustMain
- where := "EId = " + utils.ToStr(reportmodel.EId)
- enwhere := "Id = " + utils.ToStr(reportmodel.EId)
- svc.GetEntityByWhere(taskbalancename, where, &balancedata)
- svc.GetEntityByWhere(entrustname, enwhere, &entrustmaindata)
- //创建数据录入记录
- var dataentryentity limsdataentry.LimsDateEntry
- orderby := "b.Id desc"
- where2 := " b.Id= " + utils.ToStr(balancedata.DataDocId)
- templatedata = svc.GetPagingTemplateSerch(docname, docdetailname, orderby, where2)
- fileurl := strings.Split(templatedata[0].FileURL, "|")
- dataentryentity.DataEntryCode = DataEntryCode + "-复检"
- dataentryentity.TaskId = balancedata.Id
- dataentryentity.DocId = balancedata.DataDocId
- dataentryentity.DocType = balancedata.DataDoc
- dataentryentity.DocAddress = fileurl[0]
- dataentryentity.EId = entrustmaindata.Id
- dataentryentity.Recheck = 1
- dataentryentity.CustomerId = entrustmaindata.CustomerId
- dataentryentity.CustomerName = entrustmaindata.CustomerName
- dataentryentity.PositionCheck = entrustmaindata.AddressName
- dataentryentity.PositionCheckId = entrustmaindata.AddressId
- dataentryentity.DocName = fileurl[1]
- dataentryentity.DocVersion = "v1"
- dataentryentity.CheckStatus = 0
- dataentryentity.CreateBy = ReCheckUser
- dataentryentity.CreateUserId, _ = utils.StrTo(RecheckUserId).Int()
- _, err = svc.InsertEntityBytbl(dataentryname, &dataentryentity)
- //启动数据录入工作流
- svcActiviti := workflow.GetActivitiService(utils.DBE)
- var processInstanceId string
- var RoleSet auditsetting.BaseOilAuditSetting
- rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
- rsvc.GetAuditStepRoleEntity("Base_OilAuditSetting",DeptID,workflow.DATAAUDIT, &RoleSet)
- processInstanceId = svcActiviti.StartProcess(RoleSet.WorkFlowCord, strconv.Itoa(dataentryentity.Id), RecheckUserId)
- //switch departartmentId {
- //case "100000150":
- // processInstanceId = svcActiviti.StartProcess(workflow.TJZ_DATA_KEY, strconv.Itoa(dataentryentity.Id), RecheckUserId)
- //case "100000151":
- // processInstanceId = svcActiviti.StartProcess(workflow.YX_DATA_KEY, strconv.Itoa(dataentryentity.Id), RecheckUserId)
- //}
- dataentryentity.DocKey = processInstanceId
- err = this.UpdateEntityBytbl(dataentryname, dataentryentity.Id, &dataentryentity, []string{"DocKey"})
- fmt.Println(err)
- return dataentryentity.Id,dataentryentity.TaskId
- }
|