supplierdataentry.go 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. package oilsupplier
  2. import (
  3. "dashoo.cn/backend/api/business/oilsupplier/supplierdataentry"
  4. "dashoo.cn/backend/api/business/workflow"
  5. . "dashoo.cn/backend/api/controllers"
  6. "dashoo.cn/utils"
  7. "reflect"
  8. "strconv"
  9. )
  10. type SupplierDataEntryController struct {
  11. BaseController
  12. }
  13. type RequestList struct {
  14. DocKey string
  15. DocAddress string
  16. DocName string
  17. DataEntryId int
  18. DocUrl string
  19. }
  20. type AddEntry struct {
  21. EntrustNo string
  22. ConUserId int
  23. Remark string
  24. ConUserBy string
  25. }
  26. type CopySheet struct {
  27. SheetNum int
  28. }
  29. type DataEntryCallback struct {
  30. Id string `json:"Id"`
  31. DocUrl string `json:"DocUrl"`
  32. }
  33. // @Title 从数据录入数据导出到word文档
  34. // @Description 数据存入word
  35. // @Success 200 {object} controllers.Request
  36. // @router /exportword/:tbid [post]
  37. func (this *SupplierDataEntryController) DocExport() {
  38. // 填物资类信息表首页信息
  39. Id := this.Ctx.Input.Param(":tbid")
  40. var Url string
  41. var fileName string
  42. var model1 supplierdataentry.SupplierDataEntry
  43. var model2 supplierdataentry.SupplierCertDataEntry
  44. svc := supplierdataentry.GetSupplierDataEntryService(utils.DBE)
  45. where1 := "1=1"
  46. where1 += " AND Id = '" + Id + "'"
  47. where2 := "SupplierId = '" + Id + "'"
  48. svc.GetEntityByWhere(OilSupplierName, where1, &model1)
  49. svc.GetEntityByWhere(OilSupplierCertName, where2, &model2)
  50. var tabledata3 []supplierdataentry.SupplierMajorEquipmentDataEntry
  51. var tabledata4 []supplierdataentry.SupplierThreeYearsDataEntryView
  52. var tabledata5 []supplierdataentry.SupplierPatentDataEntryView
  53. var tabledata6 []supplierdataentry.SupplierWinningDataEntryView
  54. var tabledata7 []supplierdataentry.SupplierCertSubEntry
  55. SupplierCertId := strconv.Itoa(model2.Id)
  56. where3 := "SupplierCertId = '" + SupplierCertId + "'"
  57. svc.GetEntitysByOrderbyWhere(OilEnterpriseMajorEquipmentName, where3, "1", &tabledata3)
  58. svc.GetEntitysByOrderbyWhere(OilThreeYearsPerformanceName, where3, "1", &tabledata4)
  59. svc.GetEntitysByOrderbyWhere(OilPatentStatisticalName, where3, "1", &tabledata5)
  60. svc.GetEntitysByOrderbyWhere(OilWinningProjectName, where3, "1", &tabledata6)
  61. svc.GetEntitysByOrderbyWhere(OilSupplierCertSubName, where3, "1", &tabledata7)
  62. //wheretable := "MId=" + strconv.Itoa(model.Id)
  63. //svc.GetEntitysByWhere(this.User.AccCode+LimsHeatingFurnaceItemsName, wheretable, &tabledata)
  64. //svc.GetEntitysByOrderbyWhere(this.User.AccCode+LimsHeatingFurnaceItemsName, wheretable, "OrderNo desc", &tabledata)
  65. datamap := StructToMapDemo(model1)
  66. if model2.SupplierTypeCode == "01" {
  67. //Url = "http://weed1.labsop.cn:9390/1,248318341f7c"
  68. Url = utils.Cfg.MustValue("workflow", "goodsModuleHost")
  69. fileName = "物资类供方准入评审表.docx"
  70. } else if model2.SupplierTypeCode == "02" {
  71. //Url = "http://weed1.labsop.cn:9390/5,2479ad04d28b"
  72. Url = utils.Cfg.MustValue("workflow", "basisModuleHost")
  73. fileName = "基建类供方准入评审表.docx"
  74. datamap["TJInNotify"] = model1.TJInNotify
  75. } else {
  76. //Url = "http://weed1.labsop.cn:9390/2,247af827d5ac"
  77. Url = utils.Cfg.MustValue("workflow", "techModuleHost")
  78. fileName = "技术服务类供方准入评审表.docx"
  79. }
  80. //model1
  81. datamap["SetupTime"] = model1.SetupTime.Format("2006年01月02日")
  82. datamap["QualifCert"] = model1.QualifCert
  83. datamap["QualifCertLevel"] = model1.QualifCertLevel
  84. datamap["SpecIndustryCert"] = model1.SpecIndustryCert
  85. datamap["MaunLicense"] = model1.MaunLicense
  86. datamap["HseTraining"] = model1.HseTraining
  87. datamap["Fax"] = model1.Fax
  88. datamap["CompanyTel"] = model1.CompanyTel
  89. datamap["SupplierName"] = model1.SupplierName
  90. datamap["SpecTypeCode"] = model1.SpecTypeName
  91. datamap["Country"] = model1.Country
  92. datamap["MaunAgent"] = model1.MaunAgent
  93. datamap["SupplierCertificate"] = model1.SupplierCertificate
  94. datamap["MgrUnit"] = model1.MgrUnit
  95. datamap["Grade"] = model1.Grade
  96. datamap["CommercialNo"] = model1.CommercialNo
  97. datamap["CountryTaxNo"] = model1.CountryTaxNo
  98. datamap["OrganCode"] = model1.OrganCode
  99. datamap["Address"] = model1.Address
  100. datamap["ZipCode"] = model1.ZipCode
  101. datamap["LinkAddress"] = model1.LinkAddress
  102. datamap["LinkZipCode"] = model1.LinkZipCode
  103. datamap["QualitySystemCert"] = model1.QualitySystemCert
  104. datamap["ProductQualityCert"] = model1.ProductQualityCert
  105. datamap["MaunLicense"] = model1.MaunLicense
  106. datamap["LegalPerson"] = model1.LegalPerson
  107. datamap["CompanyType"] = model1.CompanyType
  108. datamap["ContactName"] = model1.ContactName
  109. datamap["RegCapital"] = model1.RegCapital
  110. datamap["DepositBank"] = model1.DepositBank
  111. datamap["BankAccount"] = model1.BankAccount
  112. datamap["Mobile"] = model1.Mobile
  113. datamap["EMail"] = model1.EMail
  114. datamap["BankCreditRating"] = model1.BankCreditRating
  115. datamap["BusinessScope"] = model1.BusinessScope
  116. datamap["Telphone"] = model1.Telphone
  117. //model2
  118. datamap["WorkerTotal"] = model2.WorkerTotal
  119. datamap["ContractNum"] = model2.ContractNum
  120. datamap["UniversityNum"] = model2.UniversityNum
  121. datamap["TechnicalNum"] = model2.TechnicalNum
  122. datamap["AboveProfNum"] = model2.AboveProfNum
  123. datamap["MiddleProfNum"] = model2.MiddleProfNum
  124. datamap["NationalRegNum"] = model2.NationalRegNum
  125. datamap["NationalCertTotal"] = model2.NationalCertTotal
  126. datamap["DesignerTotal"] = model2.DesignerTotal
  127. datamap["SkillerTotal"] = model2.SkillerTotal
  128. if len(tabledata7) != 0 {
  129. var Name string
  130. Name = tabledata7[0].Name
  131. for i := 1; i < len(tabledata7); i++ {
  132. Name = Name + "," + tabledata7[i].Name
  133. }
  134. datamap["Name"] = Name
  135. } else {
  136. datamap["Name"] = ""
  137. }
  138. var interfaceSlice3 = make([]interface{}, len(tabledata3))
  139. datamap["MajorEquipments"] = workflow.TableDetailData{
  140. DataList: interfaceSlice3,
  141. StartRow: 2,
  142. NeedDelRow: 1,
  143. ReverseRow: 4,
  144. Cols: []string{"MajorEquipment", "Specifications", "Number", "Remark"},
  145. Merge: []string{},
  146. ColsNum: 4,
  147. }
  148. //起止时间如何全部显示
  149. var interfaceSlice4 = make([]interface{}, len(tabledata4))
  150. for i, d := range tabledata4 {
  151. d.StartTimeStr = d.StopTime.Format("2006-01-02")
  152. interfaceSlice4[i] = d
  153. }
  154. datamap["ThreeYears"] = workflow.TableDetailData{
  155. DataList: interfaceSlice4,
  156. StartRow: 2,
  157. NeedDelRow: 1,
  158. ReverseRow: 4,
  159. Cols: []string{"ProjectName", "BearContent", "OwnerUnit", "StartTimeStr", "StartTimeStr", "Tudge"},
  160. Merge: []string{},
  161. ColsNum: 5,
  162. }
  163. var interfaceSlice5 = make([]interface{}, len(tabledata5))
  164. for i, d := range tabledata5 {
  165. d.ApprovalDateStr = d.ApprovalDate.Format("2006-01-02")
  166. interfaceSlice5[i] = d
  167. }
  168. datamap["Patent"] = workflow.TableDetailData{
  169. DataList: interfaceSlice5,
  170. StartRow: 2,
  171. NeedDelRow: 1,
  172. ReverseRow: 9,
  173. Cols: []string{"Name", "Content", "ApprovalAuthority", "ApprovalDateStr"},
  174. Merge: []string{},
  175. ColsNum: 4,
  176. }
  177. var interfaceSlice6 = make([]interface{}, len(tabledata6))
  178. for i, d := range tabledata6 {
  179. d.WinningTimeStr = d.WinningTime.Format("2006-01-02")
  180. interfaceSlice6[i] = d
  181. }
  182. datamap["Winning"] = workflow.TableDetailData{
  183. DataList: interfaceSlice6,
  184. StartRow: 2,
  185. NeedDelRow: 1,
  186. ReverseRow: 8,
  187. Cols: []string{"AwardName", "WinningTimeStr", "Authorities", "Remark"},
  188. Merge: []string{},
  189. ColsNum: 4,
  190. }
  191. datamap["TableComment"] = []string{"MajorEquipments", "ThreeYears", "Patent", "Winning"}
  192. svcActiviti := workflow.GetActivitiService(utils.DBE)
  193. retDocUrl := svcActiviti.FillWordTemplate(datamap, Url, fileName)
  194. var datainfo ErrorDataInfo
  195. datainfo.Code = 0
  196. datainfo.Item = retDocUrl
  197. datainfo.Message = "打印成功"
  198. this.Data["json"] = &datainfo
  199. this.ServeJSON()
  200. }
  201. func StructToMapDemo(obj interface{}) map[string]interface{} {
  202. obj1 := reflect.TypeOf(obj)
  203. obj2 := reflect.ValueOf(obj)
  204. var data = make(map[string]interface{})
  205. for i := 0; i < obj1.NumField(); i++ {
  206. data[obj1.Field(i).Name] = obj2.Field(i).Interface()
  207. }
  208. return data
  209. }