package com.mes.utilization.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mes.utils.Result; import com.mes.utilization.entity.Utilization; import com.mes.utilization.service.UtilizationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; @Api(tags = "生产线利用率接口") @RestController @RequestMapping("/utilization") public class UtilizationController { @Autowired private UtilizationService utilizationService; @ApiOperation("获取生产线利用率数据列表") @PostMapping("/listUtilization") @ResponseBody public Result listUtilization(@RequestBody Map params) { Integer page = params.get("page") == null ? 1 : (Integer) params.get("page"); Integer pageSize = params.get("pageSize") == null ? 10 : (Integer) params.get("pageSize"); String lineNo = (String) params.get("lineNo"); QueryWrapper queryWrapper = new QueryWrapper().orderByDesc("record_time"); if (StringUtils.hasText(lineNo)) { queryWrapper.eq("line_no", lineNo); } Page pageData = utilizationService.page( new Page<>(page, pageSize), queryWrapper ); return Result.build(200, "查询成功", pageData); } @ApiOperation("添加生产线利用率记录") @PostMapping("/addUtilization") @ResponseBody public Result addUtilization(@RequestBody Utilization utilization) { utilization.setCreateTime(new Date()); utilization.setUpdateTime(new Date()); boolean success = utilizationService.save(utilization); int count = success ? 1 : 0; String message = count > 0 ? "添加成功:" + count : "添加失败!"; return Result.build(200, message, count); } @ApiOperation("修改生产线利用率记录") @PostMapping("/updateUtilization") @ResponseBody public Result updateUtilization(@RequestBody Utilization utilization) { utilization.setUpdateTime(new Date()); boolean success = utilizationService.updateById(utilization); int count = success ? 1 : 0; String message = count > 0 ? "修改成功:" + count : "修改失败!"; return Result.build(200, message, count); } @ApiOperation("删除生产线利用率记录") @PostMapping("/deleteUtilization") @ResponseBody public Result deleteUtilization(@RequestBody Utilization utilization) { boolean success = utilizationService.removeById(utilization.getId()); int count = success ? 1 : 0; String message = count > 0 ? "删除成功:" + count : "删除失败!"; return Result.build(200, message, count); } @ApiOperation("获取图表数据") @PostMapping("/chartUtilization") @ResponseBody public Result getChartData(@RequestBody(required = false) Map params) { String lineNo = params != null ? (String) params.get("lineNo") : null; Integer dayCount = params != null && params.get("dayCount") != null ? (Integer) params.get("dayCount") : null; QueryWrapper queryWrapper = new QueryWrapper().orderByAsc("record_time"); if (StringUtils.hasText(lineNo)) { queryWrapper.eq("line_no", lineNo); } if (dayCount != null && dayCount > 0) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -dayCount); Date startDate = calendar.getTime(); queryWrapper.ge("record_time", startDate); } List data = utilizationService.list(queryWrapper); return Result.build(200, "查询成功", data); } }