infoModel.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. 'use strict';
  2. module.exports = app => {
  3. const mongoose = app.mongoose;
  4. const Schema = mongoose.Schema;
  5. const InfoSchema = new Schema({
  6. dept1: {
  7. type: Schema.Types.ObjectId,
  8. ref: 'sysDept',
  9. },
  10. dept2: {
  11. type: Schema.Types.ObjectId,
  12. ref: 'sysDept',
  13. },
  14. dept3: {
  15. type: Schema.Types.ObjectId,
  16. ref: 'sysDept',
  17. },
  18. dept4: {
  19. type: Schema.Types.ObjectId,
  20. ref: 'sysDept',
  21. },
  22. dept5: {
  23. type: Schema.Types.ObjectId,
  24. ref: 'sysDept',
  25. },
  26. userid: {
  27. type: Schema.Types.ObjectId,
  28. ref: 'sysUser',
  29. },
  30. // userName: { type: String }, // 采集员
  31. status: { type: String, default: '0' }, // 状态
  32. fid: {
  33. type: Schema.Types.ObjectId,
  34. ref: 'Family' }, // 户id
  35. time: { type: Date, default: Date.now },
  36. // 采集信息----老人,子女,赡养人信息,巡访联系人信息
  37. name: { type: String }, // 姓名
  38. sex: { type: String }, // 性别
  39. nation: { type: String }, // 民族
  40. idNumber: { type: String }, // 身份证号
  41. birthday: { type: String }, // 生日
  42. phone: { type: String }, // 联系电话
  43. address: { type: String }, // 现居地址 必填
  44. addressId: { type: String }, // 现居地址对应的id 必填
  45. addressExt: { type: String }, // 现居地址详细 -- 非必填
  46. isSameWithAddress: { type: String }, // 是否户籍地址和现居地址一致 //去掉了
  47. nativePlace: { type: String }, // 户籍地址 必填
  48. nativePlaceId: { type: String }, // 户籍地址对应的id 必填
  49. nativePlaceExt: { type: String }, // 户籍地址详细 -- 非必填
  50. partnerState: { type: String }, // 婚姻及配偶情况 已婚:必填 配偶姓名 配偶身份证号
  51. partnerName: { type: String }, // 配偶姓名
  52. partnerIdNumber: { type: String }, // 配偶身份证号
  53. isLoss: { type: String }, // 是否为失独家庭
  54. health: { type: Array }, // 健康状况 如果这个是残疾 残疾类别 残疾等级必填 多选
  55. majorDiseases: { type: Array }, // 重特大疾病类别
  56. disabilityCategory: { type: Array }, // 残疾类别 多选
  57. disabilityLevel: { type: String }, // 残疾等级
  58. ability: { type: String }, // 老年人能力状况 --必选
  59. livingCondition: { type: String }, // 生活经济状况
  60. sourceOfIncome: { type: Array }, // 收入来源 收入来源里如果有其它 那么收入来源---其他必填 多选
  61. sourceOfIncomeExt: { type: String }, // 收入来源---其他
  62. income: { type: String }, // 本人上年度可支配收入
  63. rescueState: { type: Array }, // 家庭救助帮扶情况 多选
  64. rescueStateExt: { type: String }, // 家庭救助帮扶情况---其他 非必填
  65. accompany: { type: Array }, // 陪伴居住情况 陪伴居住情况如果有其他 那么陪伴居住情况---其他必填 无人陪伴居住 多选
  66. accompanyExt: { type: String }, // 陪伴居住情况-其他
  67. lookAfter: { type: Array }, // 日常生活照料人 多选
  68. // 1.日常生活照料人如果有其他 那么日常生活照料人 ---其他必填 ,
  69. // 2.如果日常生活照料人不是无人照料 主要照料人姓名,主要照料人性别,主要照料人电话 必填
  70. lookAfterExt: { type: String }, // 日常生活照料人---其他
  71. mainLookName: { type: String }, // 主要照料人姓名
  72. mainLookSex: { type: String }, // 主要照料人性别
  73. mainLookPhone: { type: String }, // 主要照料人电话
  74. demand: { type: Array }, // 关爱服务需求 关爱服务需求如果有其它 那么关爱服务需求---其他必填
  75. demandExt: { type: String }, // 关爱服务需求---其他
  76. // oldType: { type: String }, // 老年人类别
  77. oldType: { type: Array }, // 老年人类别
  78. photo: { type: String }, // 老人照片
  79. photoAndLocation: { type: String }, // 老人定位
  80. childrenNum: { type: String }, // 子女数量 当数量不是0的时候 子女信息必填
  81. childInfo: { type: String }, // 子女信息 以json形式存储
  82. // 1.[{
  83. // name: 姓名,
  84. // phone:常用联系电话,
  85. // isHasGoOut:子女是否外出
  86. // outgoingplace:外出地点
  87. // isHasPartner:是否有配偶 当是的时候 子女配偶姓名 子女配偶电话 必填 0:是 1:否
  88. // name2:子女配偶姓名
  89. // phone2:子女配偶电话
  90. // outgoingTime:最后一次离家时间
  91. // outgoingCause:外出原因
  92. // visit:平均一年探望次数
  93. // }]
  94. // isHasOther: { type: String }, // 是否有其他赡养人 是的时候 其他赡养人必填
  95. otherInfo: { type: String }, // 其他赡养人 信息 以json形式存储
  96. // 1.{
  97. // name: 其他赡养人姓名,
  98. // sex:其他赡养人性别
  99. // phone:其他赡养人电话,
  100. // relation:与被赡养人关系 如果选了其他也是必填 单选
  101. // relationExt 与被赡养人关系--其他
  102. // outgoingplace:外出地点
  103. // outgoingTime:最后一次离家时间
  104. // visit:平均一年探望次数
  105. // }
  106. regularsInfo: { type: String }, // 巡访联系人信息 以json形式存储
  107. // 1.{
  108. // visitMode:巡访方式 如果选了其他也是必填 多选
  109. // visitModeExt: 巡访方式--其它
  110. // visitCount:巡访频次,如果选了其他也是必填 单选
  111. // visitCountExt:巡访频次--其它
  112. // }
  113. pic: { type: String }, // 二维码地址
  114. remark: { type: String }, // 审核备注
  115. syncStatus: { type: Number }, // 同步状态
  116. eightType: { type: Number, default: 0 }, // 是否为八类老年人-CH-新增
  117. online: { type: String }, // 离线状态 // 默认false 离线状态
  118. isDeath: { type: Number, default: 0 },
  119. partyMember: { type: Number, default: 0 }, // 党员 2022-3-3 添加
  120. ownerId: { type: String }, // 自主填报用户的openid
  121. // openId: { type: Array }, // 赡养人微信openid
  122. });
  123. InfoSchema.index({ dept3: 1 }, { background: true, name: 'info_dept3_1' });
  124. InfoSchema.index({ fid: 1 }, { background: true, name: 'info_fid_1' });
  125. InfoSchema.index({ userid: -1 }, { background: true, name: 'info_userid_-1' });
  126. InfoSchema.index({ name: 1 }, { background: true, name: 'info_name_1' });
  127. InfoSchema.index({ idNumber: 1 }, { background: true, name: 'info_idNumber_1' });
  128. InfoSchema.index({ phone: 1 }, { background: true, name: 'info_phone_1' });
  129. return mongoose.model('Info', InfoSchema, 'info');
  130. };