package com.jpsoft.smart.modules.base.controller; import com.github.pagehelper.Page; import com.jpsoft.smart.modules.base.entity.ElectricClientInfo; import com.jpsoft.smart.modules.base.entity.RoomInfo; import com.jpsoft.smart.modules.base.service.ElectricClientInfoService; import com.jpsoft.smart.modules.base.service.RoomInfoService; import com.jpsoft.smart.modules.common.dto.MessageResult; import com.jpsoft.smart.modules.common.dto.Sort; import com.jpsoft.smart.modules.sys.service.DataDictionaryService; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.*; @RestController @RequestMapping("/base/electricClientInfo") public class ElectricClientInfoController { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private ElectricClientInfoService electricClientInfoService; @Autowired private RoomInfoService roomInfoService; @Autowired private DataDictionaryService dataDictionaryService; @ApiOperation(value="创建空记录") @GetMapping("create") public MessageResult create(){ MessageResult msgResult = new MessageResult<>(); ElectricClientInfo electricClientInfo = new ElectricClientInfo(); msgResult.setData(electricClientInfo); msgResult.setResult(true); return msgResult; } @ApiOperation(value="添加信息") @PostMapping("add") public MessageResult add(@RequestBody ElectricClientInfo electricClientInfo,@RequestAttribute String subject){ MessageResult msgResult = new MessageResult<>(); try { electricClientInfo.setId(UUID.randomUUID().toString()); electricClientInfo.setDelFlag(false); electricClientInfo.setCreateBy(subject); electricClientInfo.setCreateTime(new Date()); RoomInfo roomInfo = roomInfoService.get(electricClientInfo.getRoomId()); //金额计算 //获取房间用电类型 String uType = ""; BigDecimal ePrice ; BigDecimal erPrice = new BigDecimal(electricClientInfo.getElectricityRemaining()); if(StringUtils.isNotEmpty(roomInfo.getUseType())) { ePrice = new BigDecimal(dataDictionaryService.getValue(roomInfo.getUseType())); BigDecimal totalPrice = ePrice.multiply(erPrice); electricClientInfo.setAmountRemaining(totalPrice); } int affectCount = electricClientInfoService.insert(electricClientInfo); if (affectCount > 0) { msgResult.setResult(true); msgResult.setData(electricClientInfo); } else { msgResult.setResult(false); msgResult.setMessage("数据库添加失败"); } } catch(Exception ex){ logger.error(ex.getMessage(),ex); msgResult.setResult(false); msgResult.setMessage(ex.getMessage()); } return msgResult; } @ApiOperation(value="获取信息") @GetMapping("edit/{id}") public MessageResult edit(@PathVariable("id") String id){ MessageResult msgResult = new MessageResult<>(); try { ElectricClientInfo electricClientInfo = electricClientInfoService.get(id); if (electricClientInfo != null) { msgResult.setResult(true); msgResult.setData(electricClientInfo); } else { msgResult.setResult(false); msgResult.setMessage("数据库不存在该记录!"); } } catch(Exception ex){ logger.error(ex.getMessage(),ex); msgResult.setResult(false); msgResult.setMessage(ex.getMessage()); } return msgResult; } @ApiOperation(value="更新用户") @PostMapping("update") public MessageResult update(@RequestBody ElectricClientInfo electricClientInfo,@RequestAttribute String subject){ MessageResult msgResult = new MessageResult<>(); try { electricClientInfo.setUpdateBy(subject); electricClientInfo.setUpdateTime(new Date()); RoomInfo roomInfo = roomInfoService.get(electricClientInfo.getRoomId()); //金额计算 //获取房间用电类型 String uType = ""; BigDecimal ePrice ; BigDecimal erPrice = new BigDecimal(electricClientInfo.getElectricityRemaining()); if(StringUtils.isNotEmpty(roomInfo.getUseType())) { ePrice = new BigDecimal(dataDictionaryService.getValue(roomInfo.getUseType())); BigDecimal totalPrice = ePrice.multiply(erPrice); electricClientInfo.setAmountRemaining(totalPrice); } int affectCount = electricClientInfoService.update(electricClientInfo); if (affectCount > 0) { msgResult.setResult(true); msgResult.setData(electricClientInfo); } else { msgResult.setResult(false); msgResult.setMessage("数据库更新失败"); } } catch(Exception ex){ logger.error(ex.getMessage(),ex); msgResult.setResult(false); msgResult.setMessage(ex.getMessage()); } return msgResult; } @ApiOperation(value="删除") @PostMapping("delete/{id}") public MessageResult delete(@PathVariable("id") String id,@RequestAttribute String subject){ MessageResult msgResult = new MessageResult<>(); try { ElectricClientInfo electricClientInfo = electricClientInfoService.get(id); electricClientInfo.setDelFlag(true); electricClientInfo.setUpdateBy(subject); electricClientInfo.setUpdateTime(new Date()); int affectCount = electricClientInfoService.update(electricClientInfo); if (affectCount > 0) { msgResult.setResult(true); msgResult.setData(affectCount); } else { msgResult.setResult(false); msgResult.setMessage("删除失败"); } } catch(Exception ex){ logger.error(ex.getMessage(),ex); msgResult.setResult(false); msgResult.setMessage(ex.getMessage()); } return msgResult; } @ApiOperation(value="批量删除") @PostMapping("batchDelete") public MessageResult batchDelete(@RequestBody List idList, @RequestAttribute String subject){ MessageResult msgResult = new MessageResult<>(); try { int affectCount = 0; for (String id : idList) { ElectricClientInfo electricClientInfo = electricClientInfoService.get(id); electricClientInfo.setDelFlag(true); electricClientInfo.setUpdateBy(subject); electricClientInfo.setUpdateTime(new Date()); affectCount += electricClientInfoService.update(electricClientInfo); } if (affectCount > 0) { msgResult.setResult(true); msgResult.setData(affectCount); } else { msgResult.setResult(false); msgResult.setMessage("删除失败"); } } catch(Exception ex){ logger.error(ex.getMessage(),ex); msgResult.setResult(false); msgResult.setMessage(ex.getMessage()); } return msgResult; } @ApiOperation(value="列表") @RequestMapping(value = "pageList",method = RequestMethod.POST) public MessageResult pageList( String id, @RequestParam(name="customerNo",defaultValue = "") String customerNo, @RequestParam(name="pageIndex",defaultValue = "1") int pageIndex, @RequestParam(name="pageSize",defaultValue = "10") int pageSize, @RequestAttribute String subject){ //当前用户ID System.out.println(subject); MessageResult msgResult = new MessageResult<>(); Map searchParams = new HashMap<>(); List sortList = new ArrayList<>(); if (StringUtils.isNotEmpty(id)) { searchParams.put("id","%" + id + "%"); } if (StringUtils.isNotEmpty(customerNo)) { searchParams.put("customerNo",customerNo); } Page page = electricClientInfoService.pageSearch(searchParams,pageIndex,pageSize,sortList); List resultClientList = new ArrayList<>(); List clientList = page.getResult(); for(ElectricClientInfo clientInfo :clientList){ RoomInfo room = roomInfoService.get(clientInfo.getRoomId()); RoomInfo building = roomInfoService.get(room.getParentId()); RoomInfo area = roomInfoService.get(building.getParentId()); clientInfo.setRoom(room); clientInfo.setBuilding(building); clientInfo.setArea(area); resultClientList.add(clientInfo); } Map pageMap = new HashMap<>(); pageMap.put("recordsTotal",page.getTotal()); pageMap.put("recordsFiltered",page.getTotal()); pageMap.put("totalPage",page.getPages()); pageMap.put("pageNumber",page.getPageNum()); pageMap.put("pageSize",page.getPageSize()); pageMap.put("data", resultClientList); msgResult.setResult(true); msgResult.setData(pageMap); return msgResult; } }