ElectricClientInfoController.java 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. package com.jpsoft.smart.modules.base.controller;
  2. import com.github.pagehelper.Page;
  3. import com.jpsoft.smart.modules.base.entity.ElectricClientInfo;
  4. import com.jpsoft.smart.modules.base.entity.RoomInfo;
  5. import com.jpsoft.smart.modules.base.service.ElectricClientInfoService;
  6. import com.jpsoft.smart.modules.base.service.RoomInfoService;
  7. import com.jpsoft.smart.modules.common.dto.MessageResult;
  8. import com.jpsoft.smart.modules.common.dto.Sort;
  9. import com.jpsoft.smart.modules.sys.service.DataDictionaryService;
  10. import io.swagger.annotations.ApiOperation;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.*;
  16. import java.math.BigDecimal;
  17. import java.util.*;
  18. @RestController
  19. @RequestMapping("/base/electricClientInfo")
  20. public class ElectricClientInfoController {
  21. private Logger logger = LoggerFactory.getLogger(getClass());
  22. @Autowired
  23. private ElectricClientInfoService electricClientInfoService;
  24. @Autowired
  25. private RoomInfoService roomInfoService;
  26. @Autowired
  27. private DataDictionaryService dataDictionaryService;
  28. @ApiOperation(value="创建空记录")
  29. @GetMapping("create")
  30. public MessageResult<ElectricClientInfo> create(){
  31. MessageResult<ElectricClientInfo> msgResult = new MessageResult<>();
  32. ElectricClientInfo electricClientInfo = new ElectricClientInfo();
  33. msgResult.setData(electricClientInfo);
  34. msgResult.setResult(true);
  35. return msgResult;
  36. }
  37. @ApiOperation(value="添加信息")
  38. @PostMapping("add")
  39. public MessageResult<ElectricClientInfo> add(@RequestBody ElectricClientInfo electricClientInfo,@RequestAttribute String subject){
  40. MessageResult<ElectricClientInfo> msgResult = new MessageResult<>();
  41. try {
  42. electricClientInfo.setId(UUID.randomUUID().toString());
  43. electricClientInfo.setDelFlag(false);
  44. electricClientInfo.setCreateBy(subject);
  45. electricClientInfo.setCreateTime(new Date());
  46. RoomInfo roomInfo = roomInfoService.get(electricClientInfo.getRoomId());
  47. //金额计算
  48. //获取房间用电类型
  49. String uType = "";
  50. BigDecimal ePrice ;
  51. BigDecimal erPrice = new BigDecimal(electricClientInfo.getElectricityRemaining());
  52. if(StringUtils.isNotEmpty(roomInfo.getUseType())) {
  53. ePrice = new BigDecimal(dataDictionaryService.getValue(roomInfo.getUseType()));
  54. BigDecimal totalPrice = ePrice.multiply(erPrice);
  55. electricClientInfo.setAmountRemaining(totalPrice);
  56. }
  57. int affectCount = electricClientInfoService.insert(electricClientInfo);
  58. if (affectCount > 0) {
  59. msgResult.setResult(true);
  60. msgResult.setData(electricClientInfo);
  61. } else {
  62. msgResult.setResult(false);
  63. msgResult.setMessage("数据库添加失败");
  64. }
  65. }
  66. catch(Exception ex){
  67. logger.error(ex.getMessage(),ex);
  68. msgResult.setResult(false);
  69. msgResult.setMessage(ex.getMessage());
  70. }
  71. return msgResult;
  72. }
  73. @ApiOperation(value="获取信息")
  74. @GetMapping("edit/{id}")
  75. public MessageResult<ElectricClientInfo> edit(@PathVariable("id") String id){
  76. MessageResult<ElectricClientInfo> msgResult = new MessageResult<>();
  77. try {
  78. ElectricClientInfo electricClientInfo = electricClientInfoService.get(id);
  79. if (electricClientInfo != null) {
  80. msgResult.setResult(true);
  81. msgResult.setData(electricClientInfo);
  82. } else {
  83. msgResult.setResult(false);
  84. msgResult.setMessage("数据库不存在该记录!");
  85. }
  86. }
  87. catch(Exception ex){
  88. logger.error(ex.getMessage(),ex);
  89. msgResult.setResult(false);
  90. msgResult.setMessage(ex.getMessage());
  91. }
  92. return msgResult;
  93. }
  94. @ApiOperation(value="更新用户")
  95. @PostMapping("update")
  96. public MessageResult<ElectricClientInfo> update(@RequestBody ElectricClientInfo electricClientInfo,@RequestAttribute String subject){
  97. MessageResult<ElectricClientInfo> msgResult = new MessageResult<>();
  98. try {
  99. electricClientInfo.setUpdateBy(subject);
  100. electricClientInfo.setUpdateTime(new Date());
  101. RoomInfo roomInfo = roomInfoService.get(electricClientInfo.getRoomId());
  102. //金额计算
  103. //获取房间用电类型
  104. String uType = "";
  105. BigDecimal ePrice ;
  106. BigDecimal erPrice = new BigDecimal(electricClientInfo.getElectricityRemaining());
  107. if(StringUtils.isNotEmpty(roomInfo.getUseType())) {
  108. ePrice = new BigDecimal(dataDictionaryService.getValue(roomInfo.getUseType()));
  109. BigDecimal totalPrice = ePrice.multiply(erPrice);
  110. electricClientInfo.setAmountRemaining(totalPrice);
  111. }
  112. int affectCount = electricClientInfoService.update(electricClientInfo);
  113. if (affectCount > 0) {
  114. msgResult.setResult(true);
  115. msgResult.setData(electricClientInfo);
  116. } else {
  117. msgResult.setResult(false);
  118. msgResult.setMessage("数据库更新失败");
  119. }
  120. }
  121. catch(Exception ex){
  122. logger.error(ex.getMessage(),ex);
  123. msgResult.setResult(false);
  124. msgResult.setMessage(ex.getMessage());
  125. }
  126. return msgResult;
  127. }
  128. @ApiOperation(value="删除")
  129. @PostMapping("delete/{id}")
  130. public MessageResult<Integer> delete(@PathVariable("id") String id,@RequestAttribute String subject){
  131. MessageResult<Integer> msgResult = new MessageResult<>();
  132. try {
  133. ElectricClientInfo electricClientInfo = electricClientInfoService.get(id);
  134. electricClientInfo.setDelFlag(true);
  135. electricClientInfo.setUpdateBy(subject);
  136. electricClientInfo.setUpdateTime(new Date());
  137. int affectCount = electricClientInfoService.update(electricClientInfo);
  138. if (affectCount > 0) {
  139. msgResult.setResult(true);
  140. msgResult.setData(affectCount);
  141. } else {
  142. msgResult.setResult(false);
  143. msgResult.setMessage("删除失败");
  144. }
  145. }
  146. catch(Exception ex){
  147. logger.error(ex.getMessage(),ex);
  148. msgResult.setResult(false);
  149. msgResult.setMessage(ex.getMessage());
  150. }
  151. return msgResult;
  152. }
  153. @ApiOperation(value="批量删除")
  154. @PostMapping("batchDelete")
  155. public MessageResult<Integer> batchDelete(@RequestBody List<String> idList, @RequestAttribute String subject){
  156. MessageResult<Integer> msgResult = new MessageResult<>();
  157. try {
  158. int affectCount = 0;
  159. for (String id : idList) {
  160. ElectricClientInfo electricClientInfo = electricClientInfoService.get(id);
  161. electricClientInfo.setDelFlag(true);
  162. electricClientInfo.setUpdateBy(subject);
  163. electricClientInfo.setUpdateTime(new Date());
  164. affectCount += electricClientInfoService.update(electricClientInfo);
  165. }
  166. if (affectCount > 0) {
  167. msgResult.setResult(true);
  168. msgResult.setData(affectCount);
  169. } else {
  170. msgResult.setResult(false);
  171. msgResult.setMessage("删除失败");
  172. }
  173. }
  174. catch(Exception ex){
  175. logger.error(ex.getMessage(),ex);
  176. msgResult.setResult(false);
  177. msgResult.setMessage(ex.getMessage());
  178. }
  179. return msgResult;
  180. }
  181. @ApiOperation(value="列表")
  182. @RequestMapping(value = "pageList",method = RequestMethod.POST)
  183. public MessageResult<Map> pageList(
  184. String id,
  185. @RequestParam(name="customerNo",defaultValue = "") String customerNo,
  186. @RequestParam(name="pageIndex",defaultValue = "1") int pageIndex,
  187. @RequestParam(name="pageSize",defaultValue = "10") int pageSize,
  188. @RequestAttribute String subject){
  189. //当前用户ID
  190. System.out.println(subject);
  191. MessageResult<Map> msgResult = new MessageResult<>();
  192. Map<String,Object> searchParams = new HashMap<>();
  193. List<Sort> sortList = new ArrayList<>();
  194. if (StringUtils.isNotEmpty(id)) {
  195. searchParams.put("id","%" + id + "%");
  196. }
  197. if (StringUtils.isNotEmpty(customerNo)) {
  198. searchParams.put("customerNo",customerNo);
  199. }
  200. Page<ElectricClientInfo> page = electricClientInfoService.pageSearch(searchParams,pageIndex,pageSize,sortList);
  201. List<ElectricClientInfo> resultClientList = new ArrayList<>();
  202. List<ElectricClientInfo> clientList = page.getResult();
  203. for(ElectricClientInfo clientInfo :clientList){
  204. RoomInfo room = roomInfoService.get(clientInfo.getRoomId());
  205. RoomInfo building = roomInfoService.get(room.getParentId());
  206. RoomInfo area = roomInfoService.get(building.getParentId());
  207. clientInfo.setRoom(room);
  208. clientInfo.setBuilding(building);
  209. clientInfo.setArea(area);
  210. resultClientList.add(clientInfo);
  211. }
  212. Map<String,Object> pageMap = new HashMap<>();
  213. pageMap.put("recordsTotal",page.getTotal());
  214. pageMap.put("recordsFiltered",page.getTotal());
  215. pageMap.put("totalPage",page.getPages());
  216. pageMap.put("pageNumber",page.getPageNum());
  217. pageMap.put("pageSize",page.getPageSize());
  218. pageMap.put("data", resultClientList);
  219. msgResult.setResult(true);
  220. msgResult.setData(pageMap);
  221. return msgResult;
  222. }
  223. }