OASystem.kt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. package com.pan_american.android
  2. import android.annotation.SuppressLint
  3. import android.app.Application
  4. import android.content.Context
  5. import com.amap.api.location.AMapLocationClient
  6. import com.amap.api.maps.MapsInitializer
  7. import com.amap.api.services.core.ServiceSettings
  8. import com.pan_american.android.data.model.common.entity.Selector
  9. import com.pan_american.android.data.model.common.entity.SiftListItem
  10. import com.pan_american.android.data.model.customer_resource.market_sales_revenue.entity.YearQuarterlyData
  11. import com.pan_american.android.data.model.group_hotel.hotel_predetermine.entity.UpdateHotelPredetermine
  12. import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.entity.EntryAndExitPaymentPrinciple
  13. import com.pan_american.android.data.model.group_management.entry_and_exit_fee_detail.network.EntryAndExitDetailResponse
  14. import com.pan_american.android.data.model.group_management.entry_and_exit_fee_draft.network.EntryAndExitDraftTotalResponse
  15. import com.pan_american.android.data.model.group_management.group_info.entity.GroupCustomerInfo
  16. import com.pan_american.android.data.model.group_management.group_info.network.GroupOperationRequest
  17. import com.pan_american.android.data.model.login.entity.Authority
  18. import com.pan_american.android.data.model.login.entity.UserInfo
  19. import com.pan_american.android.data.model.personnel_module.materials_operate.entity.MaterialTypeData
  20. import com.pan_american.android.data.model.personnel_module.materials_operate.entity.SimpleUserInfo
  21. import com.pan_american.android.data.network.APIService
  22. import com.pan_american.android.data.network.ServiceCreator
  23. class OASystem : Application() {
  24. companion object {
  25. @SuppressLint("StaticFieldLeak")
  26. // 上下文
  27. lateinit var context: Context
  28. //user Token
  29. var token = ""
  30. // 用户信息
  31. lateinit var userInfo: UserInfo
  32. // 权限列表
  33. lateinit var authData: ArrayList<Authority>
  34. val apiService = ServiceCreator.create<APIService>()
  35. //未读消息数
  36. var unReadCount = 0
  37. //公告未读条数
  38. var announcementUnReadCount = 0
  39. //日付申请, 名称筛选列表
  40. lateinit var dailyPaymentUserName: ArrayList<Selector>
  41. //日付申请, 类型筛选列表
  42. lateinit var paymentType: ArrayList<Selector>
  43. //日付申请, 子类型筛选列表
  44. lateinit var paymentSubType: ArrayList<Selector>
  45. //市场客户资源, 客户级别
  46. lateinit var customerLevel: ArrayList<Selector>
  47. //市场客户资源, 客户类别
  48. lateinit var customerClass: ArrayList<Selector>
  49. //市场客户资源, 负责人列表
  50. lateinit var customerManager: ArrayList<SiftListItem>
  51. //市场客户资源, 业务归属
  52. lateinit var serviceClass: ArrayList<SiftListItem>
  53. //市场客户资源, 省域
  54. lateinit var province: ArrayList<SiftListItem>
  55. //接团信息, 团组类型
  56. var groupInfoGroupType = ArrayList<Selector>()
  57. //接团信息, 客户级别
  58. var groupInfoCustomerLevel = ArrayList<Selector>()
  59. //接团信息, 成单人
  60. var groupInfoTradeDirector = ArrayList<Selector>()
  61. //接团信息, 接团客户名单
  62. var groupInfoGroupCustomerList = ArrayList<GroupCustomerInfo>()
  63. //接团信息, OP提成等级
  64. var groupInfoOpPercentageLevel = ArrayList<Selector>()
  65. //接团信息, 舱位类型
  66. var groupInfoBerthType = ArrayList<Selector>()
  67. //接团信息, 团组操作(增改)request
  68. lateinit var groupOperationRequest: GroupOperationRequest
  69. //地接费用录入, 单位list
  70. var groundConveyUnitList = ArrayList<Selector>()
  71. //酒店费用录入, 客户类型
  72. var hotelPredetermineCustomerType = ArrayList<Selector>()
  73. //酒店费用录入, 支付方式
  74. var hotelPredeterminePaymentWay = ArrayList<Selector>()
  75. //酒店费用录入, 团组汇率
  76. var hotelPredeterminePaymentCurrency = ArrayList<Selector>()
  77. //酒店费用录入, 银行卡
  78. var hotelPredetermineBankCard = ArrayList<Selector>()
  79. //酒店费用录入, 预订网站
  80. var hotelPredetermineHotelWebSite = ArrayList<Selector>()
  81. //酒店费用录入, 入住类型
  82. var hotelPredetermineCheckInType = ArrayList<Selector>()
  83. //酒店费用录入, 客人名单
  84. var hotelPredetermineCustomerList = ArrayList<Selector>()
  85. //酒店费用录入, 国家 / 城市
  86. var hotelPredetermineCountries = ArrayList<Selector>()
  87. //酒店费用录入, 费用操作(增改)request
  88. lateinit var hotelPredetermineRequest: UpdateHotelPredetermine
  89. var marketSalesRevenueCompanyList = ArrayList<Selector>()
  90. var marketSalesRevenueUserList = ArrayList<Selector>()
  91. var marketSalesRevenueDateList = ArrayList<YearQuarterlyData>()
  92. //物资进销存, 基础数据源
  93. var materialBaseData = ArrayList<MaterialTypeData>()
  94. //物资进销存, 申领人list
  95. var materialPerson = ArrayList<SimpleUserInfo>()
  96. //导游地接资料, 导游地接类型
  97. val guideResourceGuideType = listOf(Selector().apply {
  98. id = 0
  99. name = "公司"
  100. }, Selector().apply {
  101. id = 1
  102. name = "个人"
  103. })
  104. // 评分选择
  105. val score = listOf("5", "4", "3", "2", "1", "0")
  106. // 星级选择
  107. val level = listOf("★★★★★", "★★★★", "★★★", "★★", "★", "无")
  108. // 权重选择
  109. val weight = listOf(Selector().apply {
  110. id = 393
  111. name = "A"
  112. }, Selector().apply {
  113. id = 392
  114. name = "B"
  115. }, Selector().apply {
  116. id = 391
  117. name = "C"
  118. })
  119. //商邀费用 费用标识
  120. val paymentMark = listOf(Selector().apply {
  121. id = 0
  122. name = "公转"
  123. }, Selector().apply {
  124. id = 1
  125. name = "私转"
  126. })
  127. //团组对应币种单位
  128. var currency = ArrayList<Selector>()
  129. //接团信息, 团组状态
  130. val groupStatus = listOf(Selector().apply {
  131. id = -1
  132. name = "全部"
  133. }, Selector().apply {
  134. id = 0
  135. name = "未完成"
  136. }, Selector().apply {
  137. id = 1
  138. name = "已完成"
  139. })
  140. //收款账单, 增加方式
  141. val addMode = listOf(Selector().apply {
  142. id = 0
  143. name = "账单模块"
  144. }, Selector().apply {
  145. id = 1
  146. name = "成本预算模块"
  147. }, Selector().apply {
  148. id = 2
  149. name = "实际报价"
  150. }, Selector().apply {
  151. id = 3
  152. name = "超支费用"
  153. })
  154. //查看权限
  155. const val VIEW = 1
  156. // 删除权限
  157. const val DELETE = 2
  158. // 编辑权限
  159. const val EDIT = 3
  160. //下载权限
  161. const val DOWNLOAD = 4
  162. // 添加权限
  163. const val ADD = 11
  164. //审核权限
  165. const val PROCESS = 12
  166. // 通讯录模块
  167. const val ADDRESS_BOOK = 16
  168. // 日程安排模块
  169. const val ITINERARY = 17
  170. // 酒店信息
  171. const val HOTEL_RESOURCE = 23
  172. // 导游地接信息
  173. const val GUIDE_RESOURCE = 24
  174. // 邀请资料
  175. const val INVITE_DATA = 25
  176. // 接团信息
  177. // const val GROUP_INFORMATION = 26
  178. //团组操作
  179. const val GROUP_INFORMATION = 27
  180. //酒店预定
  181. const val HOTEL_PREDETERMINE = 28
  182. //邀请公务费用
  183. const val INVITE_OFFICIAL_PAYMENT = 29
  184. //地接费用录入
  185. const val GROUND_CONVEY_PAYMENT_INSERT = 30
  186. //签证费用录入
  187. const val VISA_PAYMENT_INSERT = 31
  188. //保险费用录入
  189. const val INSURANCE_PAYMENT_INSERT = 32
  190. // 日付申请模块
  191. const val DAILY_PAYMENT = 42
  192. // 团组费用审批模块
  193. const val EXPENSE_APPROVAL = 47
  194. //应收报表
  195. const val ACCOUNT_RECEIVABLE_REPORT = 53
  196. //收款退还
  197. const val PAYMENT_REFUND = 69
  198. // 市场客户资源
  199. const val MARKET_CUSTOMER = 89
  200. //团组经理主管, 接团客户名单
  201. const val GROUP_CLIENT_LIST = 104
  202. //团组经理主管, 倒推表
  203. const val REVERSE_TABLE = 106
  204. // 车辆公司信息
  205. const val CAR_RESOURCE = 111
  206. //团组经理主管, 出入境费用明细
  207. const val ENTRY_AND_EXIT_FEE_DETAIL = 118
  208. // 机场三字码
  209. const val THREE_CODE_RESOURCE = 120
  210. //OP行程单
  211. const val OP_TRAVEL_ITINERARY = 122
  212. //机票费用录入
  213. const val AIRPLANE_PAYMENT_INSERT = 161
  214. //公务出访
  215. const val OFFICIAL_VISITS = 166
  216. //收款账单
  217. const val COLLECTION_BILL = 171
  218. //市场部营业额
  219. const val MARKET_SALES_REVENUE = 180
  220. //查看关联邀请方
  221. const val RELATED_INVITEE = 184
  222. //票据管理
  223. const val BILL_MANAGEMENT = 185
  224. //提成确认
  225. const val COMMISSION_CONFIRM = 188
  226. //物资进销存(物资领用)
  227. const val MATERIAL_APPLICATION = 191
  228. //出入境费用明细 - 草稿
  229. const val ENTRY_AND_EXIT_FEE_DRAFT = 194
  230. //CTableId
  231. //酒店预定
  232. const val C_TABLE_HOTEL_PREDETERMINE = 76
  233. //地接费用
  234. const val C_TABLE_GROUND_CONVEY = 79
  235. //签证费用
  236. const val C_TABLE_VISA = 80
  237. //商邀费用
  238. const val C_TABLE_INVITE_OFFICIAL = 81
  239. //保险费用
  240. const val C_TABLE_INSURANCE = 82
  241. //机票费用
  242. const val C_TABLE_AIRPLANE_TICKET = 85
  243. //收款退还
  244. const val C_TABLE_PAYMENT_REFUND = 98
  245. //文档下载
  246. const val C_TABLE_DOCUMENT_DOWNLOAD = 1081
  247. //支付方式-保险 ID
  248. const val PAYMENT_WAY_INSURANCE_ID = 1057
  249. // 权限判别
  250. fun authorization(pageId: Int, operation: Int): Boolean {
  251. authData.forEach {
  252. if (it.pageId == pageId) {
  253. if (it.opList.contains(operation)) {
  254. return true
  255. }
  256. }
  257. }
  258. return false
  259. }
  260. //判断userInfo是否被初始化
  261. fun isUserInfoInit(): Boolean {
  262. return this::userInfo.isInitialized
  263. }
  264. //拍照权限code
  265. const val CAMERA_REQUEST_CODE = 1001
  266. //相册权限code
  267. const val GALLERY_REQUEST_CODE = 1002
  268. //刷新主页消息和公告
  269. const val REFRESH_NAVIGATION = 2001
  270. //通知条数
  271. var notificationCount = 0
  272. //activity / fragment是否需要刷新
  273. var needRefresh = false
  274. //三公费用 返回体
  275. var entryAndExitDetailResponse = EntryAndExitDetailResponse()
  276. //三公费用 草稿 返回体
  277. var entryAndExitDraftResponse = EntryAndExitDraftTotalResponse()
  278. //三公费用 & 草稿 最后一次选择的国家
  279. var entryAndExitLastChoiceCity = EntryAndExitPaymentPrinciple()
  280. //三公费用 - 草稿 省份列表
  281. var entryAndExitProvinceList = ArrayList<Selector>()
  282. //文档下载, 市场部成员标识
  283. var isMarketDepartment = false
  284. }
  285. override fun onCreate() {
  286. super.onCreate()
  287. context = applicationContext
  288. //定位隐私政策同意
  289. AMapLocationClient.updatePrivacyShow(context,true,true)
  290. AMapLocationClient.updatePrivacyAgree(context,true)
  291. //地图隐私政策同意
  292. MapsInitializer.updatePrivacyShow(context,true,true)
  293. MapsInitializer.updatePrivacyAgree(context,true)
  294. //搜索隐私政策同意
  295. ServiceSettings.updatePrivacyShow(context,true,true)
  296. ServiceSettings.updatePrivacyAgree(context,true)
  297. }
  298. }