package com.leap.mes.controller;
import com.leap.mes.entity.*;
import com.leap.mes.mapper.WorkInfoMapper;
import com.leap.mes.util.Result;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/work")
public class WorkController {
@Autowired
private WorkInfoMapper workInfoMapper;
@GetMapping("/getName")
Result<String> getName(String id){
return Result.success(workInfoMapper.getName(id));
}
@GetMapping("/getZl")
Result<List<Zl>> getZl(){
return Result.success(workInfoMapper.getZl());
}
@GetMapping("getTeam")
Result<List<Team>> getTeam(){
return Result.success(workInfoMapper.getTeam());
}
@PostMapping("/addScjh")
Result addScjh(@RequestBody Scjh scjh){
workInfoMapper.updateZlStatus("待分配任务",scjh);
workInfoMapper.addScjh(scjh);
return Result.success();
}
@GetMapping("/getScjh")
Result<List<Scjh>> getScjh(){
return Result.success(workInfoMapper.getScjh());
}
@GetMapping("/getWorker")
Result<List<Worker>> getWorker(String teamName){
return Result.success(workInfoMapper.getWorker(teamName));
}
@GetMapping("/getAllProcess")
Result<List<String>> getAllProcess(){
return Result.success(workInfoMapper.getAllProcess());
}
@GetMapping("/getProcess")
Result<String> getProcess(String teamName){
return Result.success(workInfoMapper.getProcess(teamName));
}
@PostMapping("/addWorkInfo")
Result addWorkInfo(@RequestBody WorkInfo workInfo){
workInfoMapper.addWorkInfo(workInfo);
workInfoMapper.updateScjhStatus("已分配",workInfo);
return Result.success();
}
@PatchMapping("/updateWorkInfoStatus")
Result updateWorkInfoStatus(String status,String id){
workInfoMapper.updateWorkInfoStatus(status,id);
return Result.success();
}
@PatchMapping("/updateWorkInfo")
Result updateWorkInfo(@RequestBody WorkInfo workInfo){
workInfoMapper.updateWorkInfo(workInfo);
workInfoMapper.updateZlCurrentProcess(workInfo);
return Result.success();
}
@GetMapping("/getWorkInfo")
Result<List<WorkInfo>> getWorkInfo(String id){
return Result.success(workInfoMapper.getWorkInfo(id));
}
@GetMapping("/getAllWorkInfo")
Result<List<WorkInfo>> getAllWorkInfo(){
return Result.success(workInfoMapper.getAllWorkInfo());
}
@GetMapping("/getMonitorData")
Result<List<Scjh>> getMonitorData() {
return Result.success(workInfoMapper.getMonitorData());
}
@GetMapping("/getOrderProgress")
Result<List<WorkInfo>> getOrderProgress(@RequestParam String generalOrder) {
return Result.success(workInfoMapper.getOrderProgress(generalOrder));
}
@PatchMapping("/updateZlTotalProcess")
Result updateZlTotalProcess(@RequestParam("selectedTeams") String selectedTeams, @RequestBody Zl zl){
String[] teamsArray = selectedTeams.split(",");
String totalProcess = Arrays.stream(teamsArray)
.map(teamName -> {
String process = workInfoMapper.getProcess(teamName); // 获取对应的 process
List<String> processes = Arrays.asList(process.split(",")); // 解析 process
return String.join("->", processes); // 将解析后的 process 拼接为 "->"
})
.collect(Collectors.joining("->"));
workInfoMapper.updateZlTotalProcess(totalProcess,zl);
return Result.success();
}
}