QueryFinishVisitCmd.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.java110.community.cmd.visit;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.java110.core.annotation.Java110Cmd;
  4. import com.java110.core.context.ICmdDataFlowContext;
  5. import com.java110.core.event.cmd.Cmd;
  6. import com.java110.core.event.cmd.CmdEvent;
  7. import com.java110.dto.itemRelease.ItemReleaseDto;
  8. import com.java110.dto.oaWorkflow.OaWorkflowDto;
  9. import com.java110.dto.owner.OwnerDto;
  10. import com.java110.dto.visit.VisitDto;
  11. import com.java110.dto.visitSetting.VisitSettingDto;
  12. import com.java110.dto.workflow.WorkflowDto;
  13. import com.java110.entity.audit.AuditUser;
  14. import com.java110.intf.common.IItemReleaseV1InnerServiceSMO;
  15. import com.java110.intf.common.IOaWorkflowActivitiInnerServiceSMO;
  16. import com.java110.intf.community.IVisitSettingV1InnerServiceSMO;
  17. import com.java110.intf.community.IVisitV1InnerServiceSMO;
  18. import com.java110.intf.oa.IOaWorkflowInnerServiceSMO;
  19. import com.java110.intf.user.IOwnerV1InnerServiceSMO;
  20. import com.java110.utils.exception.CmdException;
  21. import com.java110.utils.util.BeanConvertUtil;
  22. import com.java110.vo.ResultVo;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.http.HttpStatus;
  25. import org.springframework.http.ResponseEntity;
  26. import java.text.ParseException;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29. /**
  30. * 查询物品放行已办单
  31. */
  32. @Java110Cmd(serviceCode = "visit.queryFinishVisit")
  33. public class QueryFinishVisitCmd extends Cmd {
  34. @Autowired
  35. private IOaWorkflowActivitiInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl;
  36. @Autowired
  37. private IOaWorkflowInnerServiceSMO oaWorkflowInnerServiceSMOImpl;
  38. @Autowired
  39. private IVisitV1InnerServiceSMO visitV1InnerServiceSMOImpl;
  40. @Autowired
  41. private IVisitSettingV1InnerServiceSMO visitSettingV1InnerServiceSMOImpl;
  42. @Autowired
  43. private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
  44. @Override
  45. public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
  46. super.validatePageInfo(reqJson);
  47. }
  48. @Override
  49. public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
  50. String userId = context.getReqHeaders().get("user-id");
  51. String storeId = context.getReqHeaders().get("store-id");
  52. OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
  53. oaWorkflowDto.setState(OaWorkflowDto.STATE_COMPLAINT);
  54. oaWorkflowDto.setFlowType(OaWorkflowDto.FLOW_TYPE_VISIT);
  55. List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
  56. if (oaWorkflowDtos == null || oaWorkflowDtos.size() < 1) {
  57. return;
  58. }
  59. List<String> flowIds = new ArrayList<>();
  60. for (OaWorkflowDto tmpOaWorkflowDto : oaWorkflowDtos) {
  61. flowIds.add(WorkflowDto.DEFAULT_PROCESS + tmpOaWorkflowDto.getFlowId());
  62. }
  63. AuditUser auditUser = new AuditUser();
  64. auditUser.setProcessDefinitionKeys(flowIds);
  65. auditUser.setUserId(userId);
  66. auditUser.setStoreId(storeId);
  67. auditUser.setPage(reqJson.getInteger("page"));
  68. auditUser.setRow(reqJson.getInteger("row"));
  69. long count = oaWorkflowUserInnerServiceSMOImpl.getDefinitionKeysUserHistoryTaskCount(auditUser);
  70. List<JSONObject> datas = null;
  71. if (count > 0) {
  72. datas = oaWorkflowUserInnerServiceSMOImpl.getDefinitionKeysUserHistoryTasks(auditUser);
  73. //刷新 表单数据
  74. refreshFormData(datas, reqJson);
  75. // 输入flowId
  76. refreshSetting(datas,reqJson);
  77. //刷新 业主
  78. refreshOwners(datas, reqJson);
  79. } else {
  80. datas = new ArrayList<>();
  81. }
  82. ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, datas);
  83. ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
  84. context.setResponseEntity(responseEntity);
  85. }
  86. private void refreshOwners(List<JSONObject> datas, JSONObject reqJson) {
  87. if(datas == null || datas.size() < 1){
  88. return ;
  89. }
  90. List<String> ownerIds = new ArrayList<>();
  91. for(JSONObject apiVisitDataVo: datas){
  92. ownerIds.add(apiVisitDataVo.getString("ownerId"));
  93. }
  94. OwnerDto ownerDto = new OwnerDto();
  95. ownerDto.setOwnerIds(ownerIds.toArray(new String[ownerIds.size()]));
  96. ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
  97. ownerDto.setCommunityId(reqJson.getString("communityId"));
  98. List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
  99. for(JSONObject apiVisitDataVo: datas){
  100. for(OwnerDto tmpOwnerDto : ownerDtos){
  101. if(!apiVisitDataVo.getString("ownerId").equals(tmpOwnerDto.getOwnerId())){
  102. continue;
  103. }
  104. apiVisitDataVo.put("ownerName",tmpOwnerDto.getName());
  105. apiVisitDataVo.put("ownerTel",tmpOwnerDto.getLink());
  106. }
  107. }
  108. }
  109. private void refreshFormData(List<JSONObject> datas, JSONObject paramIn) {
  110. List<String> ids = new ArrayList<>();
  111. for (JSONObject data : datas) {
  112. ids.add(data.getString("id"));
  113. }
  114. if (ids.size() < 1) {
  115. return;
  116. }
  117. VisitDto visitDto = new VisitDto();
  118. visitDto.setvIds(ids.toArray(new String[ids.size()]));
  119. List<VisitDto> itemReleaseDtos = visitV1InnerServiceSMOImpl.queryVisits(visitDto);
  120. if (itemReleaseDtos == null || itemReleaseDtos.size() < 1) {
  121. return;
  122. }
  123. for (JSONObject data : datas) {
  124. for (VisitDto form : itemReleaseDtos) {
  125. if (data.getString("id").equals(form.getvId())) {
  126. data.putAll(BeanConvertUtil.beanCovertJson(form));
  127. }
  128. }
  129. }
  130. }
  131. private void refreshSetting(List<JSONObject> datas, JSONObject reqJson) {
  132. VisitSettingDto visitSettingDto = new VisitSettingDto();
  133. visitSettingDto.setCommunityId(reqJson.getString("communityId"));
  134. List<VisitSettingDto> visitSettingDtos = visitSettingV1InnerServiceSMOImpl.queryVisitSettings(visitSettingDto);
  135. if (visitSettingDtos == null || visitSettingDtos.size() < 1) {
  136. return;
  137. }
  138. if(datas == null || datas.size() < 1){
  139. return;
  140. }
  141. for(JSONObject data : datas){
  142. data.put("flowId",visitSettingDtos.get(0).getFlowId());
  143. }
  144. }
  145. }