package com.mes.engineering.controller;
import com.mes.engineering.entity.Engineering;
import com.mes.engineering.service.EngineeringService;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
import com.mes.pp.service.OptimizeProjectService;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.service.UpPattenUsageService;
import com.mes.utils.Result;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* 前端控制器
*
*
* @author wu
* @since 2024-04-22
*/
@RestController
@Slf4j
@RequestMapping("/engineering/engineering")
public class EngineeringController {
@Autowired
private EngineeringService engineeringService;
@Autowired
private UpPattenUsageService upPattenUsageService;
@Autowired
private GlassInfoService glassInfoService;
@Autowired
private OptimizeProjectService optimizeProjectService;
@ApiOperation("开始/暂停任务/传递工程号和状态,开始是1 暂停是0")
@PostMapping("/pauseTask") //暂停上片任务
@ResponseBody
public Result> pauseTask(@RequestBody Engineering engineering) {
boolean work = engineeringService.changeTask(engineering.getEngineerId(), engineering.getState());
List glass = upPattenUsageService.prioritylist();
if (work) {
return Result.build(200, "成功", glass);
} else {
return Result.build(100, "失败", glass);
}
}
@ApiOperation("暂停")
@PostMapping("/pause") //暂停上片任务
@ResponseBody
public Result> pause(@RequestBody Engineering engineering) {
boolean work = engineeringService.pauseTask(engineering.getEngineerId(), engineering.getState());
List glass = upPattenUsageService.prioritylist();
String message;
if (work) {
return Result.build(200, "成功", glass);
} else {
return Result.build(100, "成功", glass);
}
}
@ApiOperation("开始上片")
@PostMapping("/changeTask") //调用上片任务
@ResponseBody
public Result changeTask(@RequestBody Engineering engineering) {
log.info("engineeringId:{}", engineering);
UpPattenUsage upPattenUsage = upPattenUsageService.selectedEngineering(engineering.getEngineerId());
if (upPattenUsage != null) {
boolean work = engineeringService.changeTask(engineering.getEngineerId(), engineering.getState());
List glass = upPattenUsageService.prioritylist();
optimizeProjectService.changeTask(engineering.getEngineerId(), 200);
return Result.build(200, "已保存过", work);
} else {
List upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineering.getEngineerId());
log.info("将查询出的UpPattenUsage数据保存到数据库表里");
upPattenUsageService.saveUpPattenUsage(upPattenUsages);
log.info("从PP表查询glassinfo的数据并保存到表里");
List glassinfo = glassInfoService.selectGlassInfo(engineering.getEngineerId());
glassInfoService.saveGlassInfo(glassinfo);
log.info("从PP表查询engineering的数据并保存到表里");
List listEngineering = engineeringService.selectEngineering(engineering.getEngineerId());
engineeringService.saveEngineering(listEngineering);
log.info("更改pp表状态为已领取");
//将engineering表状态为正在上片
boolean work = engineeringService.changeTask(engineering.getEngineerId(), engineering.getState());
List glass = upPattenUsageService.prioritylist();
optimizeProjectService.changeTask(engineering.getEngineerId(), 200);
if (work) {
return Result.build(200, "保存成功" + engineering.getEngineerId(), true);
} else {
return Result.build(200, "保存成功" + engineering.getEngineerId(), false);
}
}
}
@ApiOperation("删除工程上片")
@PostMapping("/deleteTask") //调用上片任务
@ResponseBody
public Result deleteTask(@RequestBody Engineering engineering) {
//删除工程表、小片表、上片表,更改优化表状态
boolean work = false;
Engineering engineeringState = engineeringService.selectEngineeringState(engineering.getEngineerId());
if (engineeringState == null) {
work = engineeringService.deleteTask(engineering.getEngineerId());
glassInfoService.deleteTask(engineering.getEngineerId());
upPattenUsageService.deleteTask(engineering.getEngineerId());
optimizeProjectService.changeTask(engineering.getEngineerId(), 100);
}
if (work) {
return Result.build(200, "删除成功" + engineering.getEngineerId(), true);
} else {
return Result.build(200, "删除失败" + engineering.getEngineerId(), false);
}
}
@ApiOperation("查询可以上片的工程号")
@GetMapping("/selectTask") //调用上片任务
@ResponseBody
public Result> selectTask() {
List engineering = engineeringService.selectTask();
log.info("可领取任务返回:{}", engineering);
return Result.build(200, "", engineering);
}
}