package com.doumee.cloud.board; import com.doumee.api.BaseController; import com.doumee.config.annotation.LoginNoRequired; import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.web.response.platformReport.*; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/10/28 13:42 */ @Api(tags = "全省一库制管理看板") @RestController @Slf4j @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/wholeProvince") public class WholeProvinceController extends BaseController { @LoginNoRequired @ApiOperation("中心数据") @GetMapping("/centerData") public ApiResponse centerData() { WholeProvinceBoardVO data = new WholeProvinceBoardVO(); Random random = new Random(); data.setYearOutTotal(BigDecimal.valueOf(random.nextInt(200))); data.setYearOutTotalOnYear(BigDecimal.valueOf(random.nextInt(10))); data.setYearOutTimes(random.nextInt(200)); data.setYearProvinceRata(BigDecimal.valueOf(random.nextInt(100)).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP)); data.setYearInPlanTotal(BigDecimal.valueOf(random.nextInt(200))); data.setYearInTotal(BigDecimal.valueOf(random.nextInt(data.getYearInPlanTotal().intValue()))); data.setYearInTotalOnYear(BigDecimal.valueOf(random.nextInt(10))); data.setYearInTimes(random.nextInt(200)); data.setOutPlanTotal(BigDecimal.valueOf(random.nextInt(200))); data.setOutPlanTimes(random.nextInt(200)); data.setOutTotal(BigDecimal.valueOf(random.nextInt(data.getOutPlanTotal().intValue()))); data.setOutTimes(random.nextInt(data.getOutPlanTimes())); data.setOutRata(BigDecimal.valueOf(random.nextInt(100))); return ApiResponse.success(data); } @LoginNoRequired @ApiOperation("近七日到货情况") @GetMapping("/arriveGoodsList") public ApiResponse> arriveGoodsList() { List list = new ArrayList<>(); Random random = new Random(); List dayList = DateUtil.getBeforDays(new Date(),7); for (String str:dayList) { ArriveGoodsVO data = new ArriveGoodsVO(); data.setDateStr(str); data.setArriveNum(new BigDecimal(random.nextInt(1000))); data.setInTransitNum(new BigDecimal(random.nextInt(1000))); list.add(data); } return ApiResponse.success(list); } @LoginNoRequired @ApiOperation("当前运输任务") @GetMapping("/transportTaskList") public ApiResponse> transportTaskList() { List list = new ArrayList<>(); Random random = new Random(); for (int i = 1; i < 11; i++) { TransportTaskVO data = new TransportTaskVO(); data.setCarNo("皖A8" + random.nextInt(9) + random.nextInt(9) + random.nextInt(9) + random.nextInt(9)); data.setStatusStr("到达卸货地"); data.setAddress("安徽合肥"); data.setTaskDate(new Date()); list.add(data); } return ApiResponse.success(list); } @LoginNoRequired @ApiOperation("进销存运营") @GetMapping("/salesOperationList") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "queryType", value = "查询类型:0=周;1=月;2=年;", required = true), }) public ApiResponse> salesOperationList(@RequestParam Integer queryType) { List list = new ArrayList<>(); Random random = new Random(); List dayList = DateUtil.getBeforDays(new Date(),7); if(Constants.equalsInteger(queryType,Constants.ONE)){ dayList = DateUtil.getBeforDays(new Date(),30); }else if(Constants.equalsInteger(queryType,Constants.TWO)){ dayList = DateUtil.getBeforMonth(new Date(),12); } for (String str:dayList) { SalesOperationVO data = new SalesOperationVO(); data.setDateStr(str); data.setStockNum(new BigDecimal(random.nextInt(1000))); data.setTotalInNum(new BigDecimal(random.nextInt(1000))); data.setTotalOutNum(new BigDecimal(random.nextInt(1000))); list.add(data); } return ApiResponse.success(list); } @LoginNoRequired @ApiOperation("库存利用率") @GetMapping("/energyDataList") public ApiResponse> energyDataList() { List energyDataVOList = new ArrayList<>(); Random random = new Random(); for (int i = 1; i <= 5; i++) { StockRataVO data = new StockRataVO(); data.setPlaceName("地点_"+i); data.setNowStockNum(new BigDecimal(random.nextInt(200))); data.setStockRataNum(new BigDecimal(random.nextInt(200))); data.setTotalStockNum(new BigDecimal(random.nextInt(100))); energyDataVOList.add(data); } return ApiResponse.success(energyDataVOList); } @LoginNoRequired @ApiOperation("上月油耗排行") @GetMapping("/lastMonthOil") public ApiResponse> lastMonthOil() { List oilDataVOList = new ArrayList<>(); Random random = new Random(); BigDecimal maxOil = BigDecimal.ZERO; BigDecimal lastOil = BigDecimal.ZERO; for (int i = 1; i <= 7; i++) { OilDataVO oilDataVO = new OilDataVO(); oilDataVO.setCarNo("皖A8" + random.nextInt(9) + random.nextInt(9) + random.nextInt(9) + random.nextInt(9)); if(i==1){ oilDataVO.setQuantity(new BigDecimal(random.nextInt(100))); maxOil = oilDataVO.getQuantity(); }else{ oilDataVO.setQuantity(new BigDecimal(random.nextInt(lastOil.intValue()))); } lastOil = oilDataVO.getQuantity(); oilDataVO.setMaxOil(maxOil); oilDataVOList.add(oilDataVO); } return ApiResponse.success(oilDataVOList); } }