UpdateUnitCmd.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.java110.community.cmd.unit;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.java110.core.annotation.Java110Cmd;
  4. import com.java110.core.annotation.Java110Transactional;
  5. import com.java110.core.context.ICmdDataFlowContext;
  6. import com.java110.core.event.cmd.Cmd;
  7. import com.java110.core.event.cmd.CmdEvent;
  8. import com.java110.doc.annotation.*;
  9. import com.java110.dto.FloorDto;
  10. import com.java110.dto.UnitDto;
  11. import com.java110.intf.community.IFloorInnerServiceSMO;
  12. import com.java110.intf.community.IUnitInnerServiceSMO;
  13. import com.java110.intf.community.IUnitV1InnerServiceSMO;
  14. import com.java110.po.unit.UnitPo;
  15. import com.java110.utils.exception.CmdException;
  16. import com.java110.utils.util.Assert;
  17. import com.java110.utils.util.BeanConvertUtil;
  18. import com.java110.vo.ResultVo;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. @Java110CmdDoc(title = "修改单元",
  21. description = "用于外系统修改单元信息功能",
  22. httpMethod = "post",
  23. url = "http://{ip}:{port}/app/unit.updateUnit",
  24. resource = "communityDoc",
  25. author = "吴学文",
  26. serviceCode = "unit.updateUnit",
  27. seq = 10
  28. )
  29. @Java110ParamsDoc(params = {
  30. @Java110ParamDoc(name = "communityId", length = 30, remark = "小区ID"),
  31. @Java110ParamDoc(name = "floorId", length = 30, remark = "楼栋ID"),
  32. @Java110ParamDoc(name = "unitId", length = 30, remark = "单元ID"),
  33. @Java110ParamDoc(name = "unitNum", length = 30, remark = "单元"),
  34. @Java110ParamDoc(name = "layerCount", length = 30, remark = "楼层"),
  35. @Java110ParamDoc(name = "lift", length = 30, remark = "1010 有电梯 2020 无电梯"),
  36. @Java110ParamDoc(name = "unitArea", length = 30, remark = "面积"),
  37. })
  38. @Java110ResponseDoc(
  39. params = {
  40. @Java110ParamDoc(name = "code", type = "int", length = 11, defaultValue = "0", remark = "返回编号,0 成功 其他失败"),
  41. @Java110ParamDoc(name = "msg", type = "String", length = 250, defaultValue = "成功", remark = "描述"),
  42. }
  43. )
  44. @Java110ExampleDoc(
  45. reqBody="{\"floorId\":\"732022081690440002\",\"unitId\":\"123123\",\"unitNum\":\"2\",\"layerCount\":\"2\",\"lift\":\"1010\",\"remark\":\"2\",\"communityId\":\"2022081539020475\",\"unitArea\":\"2\"}",
  46. resBody="{'code':0,'msg':'成功'}"
  47. )
  48. @Java110Cmd(serviceCode = "unit.updateUnit")
  49. public class UpdateUnitCmd extends Cmd {
  50. @Autowired
  51. private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
  52. @Autowired
  53. private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
  54. @Autowired
  55. private IUnitV1InnerServiceSMO unitV1InnerServiceSMOImpl;
  56. @Override
  57. public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
  58. Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId节点");
  59. Assert.jsonObjectHaveKey(reqJson, "floorId", "请求报文中未包含floorId节点");
  60. Assert.jsonObjectHaveKey(reqJson, "unitId", "请求报文中未包含unitId节点");
  61. Assert.jsonObjectHaveKey(reqJson, "unitNum", "请求报文中未包含unitNum节点");
  62. Assert.jsonObjectHaveKey(reqJson, "layerCount", "请求报文中未包含layerCount节点");
  63. Assert.jsonObjectHaveKey(reqJson, "lift", "请求报文中未包含lift节点");
  64. Assert.isInteger(reqJson.getString("layerCount"), "单元总层数据不是有效数字");
  65. if (!"1010".equals(reqJson.getString("lift")) && !"2020".equals(reqJson.getString("lift"))) {
  66. throw new IllegalArgumentException("是否有电梯 传入数据错误");
  67. }
  68. FloorDto floorDto = new FloorDto();
  69. floorDto.setCommunityId(reqJson.getString("communityId"));
  70. floorDto.setFloorId(reqJson.getString("floorId"));
  71. //校验小区楼ID和小区是否有对应关系
  72. int total = floorInnerServiceSMOImpl.queryFloorsCount(floorDto);
  73. if (total < 1) {
  74. throw new IllegalArgumentException("传入小区楼ID不是该小区的楼");
  75. }
  76. //校验 小区楼ID 和单元ID是否有关系
  77. UnitDto unitDto = new UnitDto();
  78. unitDto.setFloorId(reqJson.getString("floorId"));
  79. unitDto.setUnitId(reqJson.getString("unitId"));
  80. total = unitInnerServiceSMOImpl.queryUnitsCount(unitDto);
  81. if (total < 1) {
  82. throw new IllegalArgumentException("传入单元不是该小区的楼的单元");
  83. }
  84. }
  85. @Override
  86. @Java110Transactional
  87. public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
  88. JSONObject businessUnit = new JSONObject();
  89. businessUnit.put("floorId", reqJson.getString("floorId"));
  90. businessUnit.put("layerCount", reqJson.getString("layerCount"));
  91. businessUnit.put("unitId", reqJson.getString("unitId"));
  92. businessUnit.put("unitNum", reqJson.getString("unitNum"));
  93. businessUnit.put("lift", reqJson.getString("lift"));
  94. businessUnit.put("remark", reqJson.getString("remark"));
  95. businessUnit.put("unitArea", reqJson.getString("unitArea"));
  96. businessUnit.put("userId", reqJson.getString("userId"));
  97. UnitPo unitPo = BeanConvertUtil.covertBean(businessUnit, UnitPo.class);
  98. int flag = unitV1InnerServiceSMOImpl.updateUnit(unitPo);
  99. if (flag < 1) {
  100. throw new CmdException("修改单元失败");
  101. }
  102. cmdDataFlowContext.setResponseEntity(ResultVo.success());
  103. }
  104. }