MachineAddOwnerRepairAdapt.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. package com.java110.job.adapt.Repair;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.java110.core.factory.WechatFactory;
  6. import com.java110.dto.community.CommunityMemberDto;
  7. import com.java110.dto.complaintType.ComplaintTypeDto;
  8. import com.java110.dto.privilege.BasePrivilegeDto;
  9. import com.java110.dto.community.CommunityDto;
  10. import com.java110.dto.repair.RepairDto;
  11. import com.java110.dto.repair.RepairSettingDto;
  12. import com.java110.dto.wechat.SmallWeChatDto;
  13. import com.java110.dto.wechat.SmallWechatAttrDto;
  14. import com.java110.dto.user.StaffAppAuthDto;
  15. import com.java110.dto.user.UserDto;
  16. import com.java110.dto.system.Business;
  17. import com.java110.dto.wechat.Content;
  18. import com.java110.dto.wechat.Data;
  19. import com.java110.dto.wechat.PropertyFeeTemplateMessage;
  20. import com.java110.intf.community.ICommunityInnerServiceSMO;
  21. import com.java110.intf.community.IRepairInnerServiceSMO;
  22. import com.java110.intf.order.IPrivilegeInnerServiceSMO;
  23. import com.java110.intf.store.ISmallWeChatInnerServiceSMO;
  24. import com.java110.intf.store.ISmallWechatAttrInnerServiceSMO;
  25. import com.java110.intf.user.IStaffAppAuthInnerServiceSMO;
  26. import com.java110.job.adapt.DatabusAdaptImpl;
  27. import com.java110.job.msgNotify.IMsgNotify;
  28. import com.java110.job.msgNotify.MsgNotifyFactory;
  29. import com.java110.po.owner.RepairPoolPo;
  30. import com.java110.utils.cache.MappingCache;
  31. import com.java110.utils.constant.MappingConstant;
  32. import com.java110.utils.util.Assert;
  33. import com.java110.utils.util.StringUtil;
  34. import org.slf4j.Logger;
  35. import com.java110.core.log.LoggerFactory;
  36. import org.springframework.beans.factory.annotation.Autowired;
  37. import org.springframework.http.ResponseEntity;
  38. import org.springframework.stereotype.Component;
  39. import org.springframework.web.client.RestTemplate;
  40. import java.util.ArrayList;
  41. import java.util.List;
  42. /**
  43. * 登记报修通知适配器
  44. *
  45. * @author fqz
  46. * @date 2020-12-11 18:54
  47. */
  48. @Component(value = "machineAddOwnerRepairAdapt")
  49. public class MachineAddOwnerRepairAdapt extends DatabusAdaptImpl {
  50. private static Logger logger = LoggerFactory.getLogger(MachineAddOwnerRepairAdapt.class);
  51. @Autowired
  52. private IRepairInnerServiceSMO repairInnerServiceSMO;
  53. @Autowired
  54. private ICommunityInnerServiceSMO communityInnerServiceSMO;
  55. @Autowired
  56. private IPrivilegeInnerServiceSMO privilegeInnerServiceSMO;
  57. @Autowired
  58. private IStaffAppAuthInnerServiceSMO staffAppAuthInnerServiceSMO;
  59. @Override
  60. public void execute(Business business, List<Business> businesses) {
  61. JSONObject data = business.getData();
  62. JSONArray businessOwnerRepairs = new JSONArray();
  63. System.out.println("收到日志:>>>>>>>>>>>>>" + data.toJSONString());
  64. if (data.containsKey(RepairPoolPo.class.getSimpleName())) {
  65. Object bObj = data.get(RepairPoolPo.class.getSimpleName());
  66. if (bObj instanceof JSONObject) {
  67. businessOwnerRepairs.add(bObj);
  68. } else if (bObj instanceof List) {
  69. businessOwnerRepairs = JSONArray.parseArray(JSONObject.toJSONString(bObj));
  70. } else {
  71. businessOwnerRepairs = (JSONArray) bObj;
  72. }
  73. } else {
  74. if (data instanceof JSONObject) {
  75. businessOwnerRepairs.add(data);
  76. }
  77. }
  78. //JSONObject businessOwnerCar = data.getJSONObject("businessOwnerCar");
  79. for (int bOwnerRepairIndex = 0; bOwnerRepairIndex < businessOwnerRepairs.size(); bOwnerRepairIndex++) {
  80. JSONObject businessOwnerRepair = businessOwnerRepairs.getJSONObject(bOwnerRepairIndex);
  81. doDealOwnerRepair(business, businessOwnerRepair);
  82. }
  83. }
  84. private void doDealOwnerRepair(Business business, JSONObject businessOwnerRepair) {
  85. RepairDto repairDto = new RepairDto();
  86. repairDto.setRepairId(businessOwnerRepair.getString("repairId"));
  87. // repairDto.setStatusCd("0");
  88. List<RepairDto> repairDtos = repairInnerServiceSMO.queryRepairs(repairDto);
  89. //获取报修类型
  90. String repairTypeName = repairDtos.get(0).getRepairTypeName();
  91. //获取小区id
  92. String communityId = repairDtos.get(0).getCommunityId();
  93. //获取位置信息
  94. String repairObjName = repairDtos.get(0).getRepairObjName();
  95. //获取报修内容
  96. String context = repairDtos.get(0).getContext();
  97. //获取业主姓名
  98. String repairName = repairDtos.get(0).getRepairName();
  99. //查询小区信息
  100. CommunityDto communityDto = new CommunityDto();
  101. communityDto.setCommunityId(communityId);
  102. List<CommunityDto> communityDtos = communityInnerServiceSMO.queryCommunitys(communityDto);
  103. JSONObject paramIn = new JSONObject();
  104. paramIn.put("repairTypeName", repairTypeName);
  105. paramIn.put("communityId", communityId);
  106. paramIn.put("repairObjName", repairObjName);
  107. paramIn.put("context", context);
  108. paramIn.put("repairName", repairName);
  109. paramIn.put("repairId", repairDtos.get(0).getRepairId());
  110. sendMessage(paramIn, communityDtos.get(0),repairDtos.get(0));
  111. }
  112. /**
  113. * 报修登记给员工推送信息
  114. *
  115. * @param paramIn
  116. * @param communityDto
  117. */
  118. private void sendMessage(JSONObject paramIn, CommunityDto communityDto,RepairDto repairDto) {
  119. //查询小区物业公司
  120. CommunityMemberDto communityMemberDto = new CommunityMemberDto();
  121. communityMemberDto.setCommunityId(communityDto.getCommunityId());
  122. communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
  123. communityMemberDto.setMemberTypeCd(CommunityMemberDto.MEMBER_TYPE_PROPERTY);
  124. List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMO.getCommunityMembers(communityMemberDto);
  125. Assert.listOnlyOne(communityMemberDtos, "小区没有 物业公司");
  126. // 根据特定权限查询 有该权限的 员工
  127. BasePrivilegeDto basePrivilegeDto = new BasePrivilegeDto();
  128. basePrivilegeDto.setResource("/wechatRepairRegistration");
  129. basePrivilegeDto.setStoreId(communityMemberDtos.get(0).getMemberId());
  130. basePrivilegeDto.setCommunityId(communityMemberDtos.get(0).getCommunityId());
  131. List<UserDto> userDtos = privilegeInnerServiceSMO.queryPrivilegeUsers(basePrivilegeDto);
  132. List<String> userIds = new ArrayList<>();
  133. IMsgNotify msgNotify = null;
  134. if(RepairSettingDto.NOTIFY_WAY_SMS.equals(repairDto.getNotifyWay())) {
  135. msgNotify = MsgNotifyFactory.getMsgNotify(MsgNotifyFactory.NOTIFY_WAY_ALI);
  136. }else if(RepairSettingDto.NOTIFY_WAY_WECHAT.equals(repairDto.getNotifyWay())){
  137. msgNotify = MsgNotifyFactory.getMsgNotify(MsgNotifyFactory.NOTIFY_WAY_WECHAT);
  138. }else{
  139. return;
  140. }
  141. for (UserDto userDto : userDtos) {
  142. if (userIds.contains(userDto.getUserId())) {
  143. continue;
  144. }
  145. JSONObject content = new JSONObject();
  146. content.put("repairTypeName",paramIn.getString("repairTypeName"));
  147. if (communityDto.getName().equals(paramIn.getString("repairObjName"))) {
  148. content.put("repairObjName",paramIn.getString("repairObjName"));
  149. } else {
  150. content.put("repairObjName",communityDto.getName() + paramIn.getString("repairObjName"));
  151. }
  152. content.put("repairName",paramIn.getString("repairName"));
  153. content.put("context",paramIn.getString("context"));
  154. content.put("repairId",paramIn.getString("repairId"));
  155. String wechatUrl = MappingCache.getValue(MappingConstant.URL_DOMAIN,"STAFF_WECHAT_URL");
  156. content.put("url",wechatUrl);
  157. msgNotify.sendAddOwnerRepairMsg(communityDto.getCommunityId(),userDto.getUserId(),content);
  158. }
  159. }
  160. }