SaveFloorListener.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package com.java110.floor.listener;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.java110.common.constant.BusinessTypeConstant;
  5. import com.java110.common.constant.ResponseConstant;
  6. import com.java110.common.constant.ServiceCodeConstant;
  7. import com.java110.common.constant.StatusConstant;
  8. import com.java110.common.exception.ListenerExecuteException;
  9. import com.java110.common.util.Assert;
  10. import com.java110.common.util.DateUtil;
  11. import com.java110.common.util.StringUtil;
  12. import com.java110.core.annotation.Java110Listener;
  13. import com.java110.core.context.DataFlowContext;
  14. import com.java110.core.factory.GenerateCodeFactory;
  15. import com.java110.entity.center.Business;
  16. import com.java110.floor.dao.IFloorServiceDao;
  17. import org.slf4j.Logger;
  18. import org.slf4j.LoggerFactory;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import java.text.ParseException;
  22. import java.util.Date;
  23. import java.util.HashMap;
  24. import java.util.List;
  25. import java.util.Map;
  26. /**
  27. * 保存 小区楼信息 侦听
  28. * Created by wuxw on 2018/5/18.
  29. */
  30. @Java110Listener("saveFloorInfoListener")
  31. @Transactional
  32. public class SaveFloorInfoListener extends AbstractFloorBusinessServiceDataFlowListener{
  33. private final static Logger logger = LoggerFactory.getLogger(SaveFloorInfoListener.class);
  34. @Autowired
  35. IFloorServiceDao floorServiceDaoImpl;
  36. @Override
  37. public int getOrder() {
  38. return 0;
  39. }
  40. @Override
  41. public String getBusinessTypeCd() {
  42. return BusinessTypeConstant.sdddfff;
  43. }
  44. /**
  45. * 保存小区楼信息 business 表中
  46. * @param dataFlowContext 数据对象
  47. * @param business 当前业务对象
  48. */
  49. @Override
  50. protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
  51. JSONObject data = business.getDatas();
  52. Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
  53. //处理 businessFloor 节点
  54. if(data.containsKey("businessFloor")){
  55. JSONObject businessFloor = data.getJSONObject("businessFloor");
  56. doBusinessFloor(business,businessFloor);
  57. dataFlowContext.addParamOut("floorId",businessFloor.getString("floorId"));
  58. }
  59. }
  60. /**
  61. * business 数据转移到 instance
  62. * @param dataFlowContext 数据对象
  63. * @param business 当前业务对象
  64. */
  65. @Override
  66. protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
  67. JSONObject data = business.getDatas();
  68. Map info = new HashMap();
  69. info.put("bId",business.getbId());
  70. info.put("operate",StatusConstant.OPERATE_ADD);
  71. //小区楼信息
  72. Map businessFloorInfo = floorServiceDaoImpl.getBusinessFloorInfo(info);
  73. if( businessFloorInfo != null && !businessFloorInfo.isEmpty()) {
  74. floorServiceDaoImpl.saveFloorInfoInstance(info);
  75. dataFlowContext.addParamOut("floorId",businessFloorInfo.get("floor_id"));
  76. }
  77. }
  78. /**
  79. * 撤单
  80. * @param dataFlowContext 数据对象
  81. * @param business 当前业务对象
  82. */
  83. @Override
  84. protected void doRecover(DataFlowContext dataFlowContext, Business business) {
  85. String bId = business.getbId();
  86. //Assert.hasLength(bId,"请求报文中没有包含 bId");
  87. Map info = new HashMap();
  88. info.put("bId",bId);
  89. info.put("statusCd",StatusConstant.STATUS_CD_VALID);
  90. Map paramIn = new HashMap();
  91. paramIn.put("bId",bId);
  92. paramIn.put("statusCd",StatusConstant.STATUS_CD_INVALID);
  93. //小区楼信息
  94. Map floorInfo = floorServiceDaoImpl.getFloorInfo(info);
  95. if(floorInfo != null && !floorInfo.isEmpty()){
  96. paramIn.put("floorId",floorInfo.get("floor_id").toString());
  97. floorServiceDaoImpl.updateFloorInfoInstance(paramIn);
  98. dataFlowContext.addParamOut("floorId",floorInfo.get("floor_id"));
  99. }
  100. }
  101. /**
  102. * 处理 businessFloor 节点
  103. * @param business 总的数据节点
  104. * @param businessFloor 小区楼节点
  105. */
  106. private void doBusinessFloor(Business business,JSONObject businessFloor){
  107. Assert.jsonObjectHaveKey(businessFloor,"floorId","businessFloor 节点下没有包含 floorId 节点");
  108. if(businessFloor.getString("floorId").startsWith("-")){
  109. //刷新缓存
  110. flushFloorId(business.getDatas());
  111. }
  112. businessFloor.put("bId",business.getbId());
  113. businessFloor.put("operate", StatusConstant.OPERATE_ADD);
  114. //保存小区楼信息
  115. floorServiceDaoImpl.saveBusinessFloorInfo(businessFloor);
  116. }
  117. public IFloorServiceDao getFloorServiceDaoImpl() {
  118. return floorServiceDaoImpl;
  119. }
  120. public void setFloorServiceDaoImpl(IFloorServiceDao floorServiceDaoImpl) {
  121. this.floorServiceDaoImpl = floorServiceDaoImpl;
  122. }
  123. }