package com.doumee.api.common; import com.alibaba.fastjson.JSONObject; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.join.BookingsJoinMapper; import com.doumee.dao.business.join.RoomsJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.BookingsService; import com.doumee.service.system.SystemUserService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Objects; @Api(tags = "工作台") @RestController @RequestMapping("/business/home") public class HomeController { @Autowired private BookingsService bookingsService; @Autowired private BookingsJoinMapper bookingsJoinMapper; @Autowired private RoomsJoinMapper roomsJoinMapper; @Autowired private SystemUserService systemUserService; @ApiOperation("数据展示") @PostMapping("/home") public ApiResponse findPage (@RequestBody PageWrap pageWrap) throws ParseException { JSONObject json=new JSONObject(); //roomTimeService.findPage(pageWrap) //今日会议数量 MPJLambdaWrapper bookquery = new MPJLambdaWrapper<>(); bookquery.eq(Bookings::getIsdeleted, Constants.ZERO); bookquery.eq(Bookings::getStatus, Constants.ZERO); bookquery.apply("DATE_FORMAT(t.START_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d') " ); Long todayBookingsNum= bookingsJoinMapper.selectCount(bookquery); json.put("todayBookingsNum",todayBookingsNum); //今日会议时长(小时) MPJLambdaWrapper bq1 = new MPJLambdaWrapper<>(); bq1.eq(Bookings::getIsdeleted, Constants.ZERO); bq1.eq(Bookings::getStatus, Constants.ZERO); bq1.apply("DATE_FORMAT(t.START_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d') " ); bq1.last("limit 1"); bq1.select("sum(IFNULL(TIMESTAMPDIFF(MINUTE,t.START_TIME,t.END_TIME),0)) as bookingTime"); Bookings bk= bookingsJoinMapper.selectOne(bq1); BigDecimal todayBookingsTime=new BigDecimal(0); if(Objects.nonNull(bk)&&bk.getBookingTime()!=null){ todayBookingsTime=bk.getBookingTime().divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_UP); } json.put("todayBookingsTime",todayBookingsTime); //今日参会人数 MPJLambdaWrapper bq2 = new MPJLambdaWrapper<>(); bq2.eq(Bookings::getIsdeleted, Constants.ZERO); bq2.eq(Bookings::getStatus, Constants.ZERO); bq2.apply("DATE_FORMAT(t.START_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d') " ); // bq2.last("limit 1"); bq2.select("(select count(u.id) from meeting_user_rel u where u.ISDELETED=0 and u.OBJ_ID=t.id)as bookingUser"); List bk2= bookingsJoinMapper.selectJoinList(Bookings.class,bq2); Integer bookingUser=0; if(bk2!=null){ for(int i=0;i rm = new MPJLambdaWrapper<>(); rm.eq(Rooms::getIsdeleted, Constants.ZERO); rm.eq(Rooms::getStatus, Constants.ZERO); // rm.last("limit 1"); // rm.select("sum(IFNULL(TIMESTAMPDIFF(MINUTE,t.START_TIME,t.END_TIME),0)) as roomTime"); // bq2.apply("DATE_FORMAT(t.START_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d') " ); List roomsList= roomsJoinMapper.selectJoinList(Rooms.class,rm); BigDecimal roomtime=new BigDecimal(0); for(int i=0;i0){ lyl= todayBookingsTime.divide(roomtime,3,BigDecimal.ROUND_HALF_UP); } // BigDecimal todayLyl =lyl.setScale(2, RoundingMode.HALF_UP);//保留两位小数 json.put("todayLyl",lyl); //会议室数量 MPJLambdaWrapper rm1 = new MPJLambdaWrapper<>(); rm1.eq(Rooms::getIsdeleted, Constants.ZERO); rm1.eq(Rooms::getStatus, Constants.ZERO); Long roomNum= roomsJoinMapper.selectCount(rm1); json.put("roomNum",roomNum); //员工数量 SystemUser systemUser=new SystemUser(); systemUser.setDeleted(Boolean.FALSE); systemUser.setType(Constants.ZERO); Long memberNum= systemUserService.count(systemUser); json.put("memberNum",memberNum); return ApiResponse.success(json); } }