package org.jeecg.modules.eam.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.apache.poi.hssf.record.DVALRecord;
import org.jeecg.common.api.vo.CommonGenericTree;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.entity.Area;
import org.jeecg.modules.eam.entity.FaultCause;
import org.jeecg.modules.eam.entity.Team;
import org.jeecg.modules.eam.service.IAreaService;
import org.jeecg.modules.eam.service.ITeamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.ParameterResolutionDelegate;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(tags = "车间 前端控制器")
@RestController
@RequestMapping("/base/area")
public class AreaController extends JeecgController {
@Autowired
private IAreaService areaService;
@Autowired
private ITeamService teamService;
@AutoLog(value = "车间-分页查询")
@ApiOperation(value = "车间-分页查询", notes = "车间-分页查询")
@GetMapping(value = "/list")
public Result> list(Area area, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(area, req.getParameterMap());
Page page = new Page(pageNo, pageSize);
IPage pageList = areaService.page(page, queryWrapper);
for (Area record : pageList.getRecords()) {
String teamNames ="";
String teamIds = record.getTeamId();
if(StringUtils.isNotBlank(teamIds)){
List ids = Arrays.asList(teamIds.split(","));
for (int i = 0; i < ids.size(); i++) {
Team team = teamService.getById(ids.get(i));
String name = team.getName();
teamNames +=name;
if(i != ids.size()-1){
teamNames += ",";
}
}
}
record.setTeamNames(teamNames);
}
return Result.ok(pageList);
}
@AutoLog(value = "车间-新增")
@ApiOperation(value = "车间-新增", notes = "车间-新增")
@PostMapping("/add")
public Result> add(@RequestBody Area area) {
String parentId = area.getParentId();
if("-1".equals(parentId)){
area.setType("1");
}else{
Area nextArea = areaService.getById(parentId);
String type = nextArea.getType();
if("1".equals(type)){
area.setType("2");
}else{
area.setType("3");
}
}
area.setStatus(CommonConstant.STATUS_1);
areaService.save(area);
return Result.ok("新增成功");
}
@AutoLog(value = "车间-编辑")
@ApiOperation(value = "车间-编辑", notes = "车间-编辑")
@PutMapping("/edit")
public Result> edit(@RequestBody Area area) {
areaService.updateById(area);
return Result.ok("编辑成功");
}
@AutoLog(value = "车间-通过id删除")
@ApiOperation(value = "车间-通过id删除", notes = "车间-通过id删除")
@DeleteMapping("/delete")
public Result> delete(@RequestParam("id") String id) {
areaService.removeById(id);
return Result.ok("删除成功");
}
@AutoLog(value = "车间-批量删除")
@ApiOperation(value = "车间-批量删除", notes = "车间-批量删除")
@DeleteMapping("/deleteBatch")
public Result> deleteBatch(@RequestParam("ids") String ids) {
areaService.removeByIds(Arrays.asList(ids.split(",")));
return Result.ok("批量删除成功!");
}
@AutoLog(value = "车间-启用&禁用")
@ApiOperation(value = "车间-启用&禁用", notes = "车间-启用&禁用")
@PutMapping("/active")
public Result> active(@RequestParam("id") String id) {
Area area = areaService.getById(id);
if (CommonConstant.STATUS_1.equals(area.getStatus())) {
area.setStatus(CommonConstant.STATUS_0);
} else {
area.setStatus(CommonConstant.STATUS_1);
}
areaService.updateById(area);
return Result.ok("更新成功!");
}
@GetMapping(value = "/getAlllist")
public Result> getAlllist(Area area, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
// QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(area, req.getParameterMap());
QueryWrapper queryWrapper = Wrappers.query();
Page page = new Page(pageNo, pageSize);
String num = area.getNum();
String name = area.getName();
String parentId = area.getParentId();
if(StringUtils.isNotBlank(parentId)){
queryWrapper.eq("parent_id", parentId);
}else{
queryWrapper.eq("parent_id", "-1");
}
if(StringUtils.isNotBlank(num)){
queryWrapper.like("num", num);
}
if(StringUtils.isNotBlank(name)){
queryWrapper.like("name", name);
}
IPage pageList = areaService.page(page, queryWrapper);
List records = pageList.getRecords();
for (Area record : records) {
String id = record.getId();
List areas = areaService.lambdaQuery().eq(Area::getParentId, id).eq(Area::getDelFlag, "0").list();
record.setNextAreas(areas);
}
return Result.OK(pageList);
}
/**
* @MethodName: loadTree
* @Description: 故障原因 树
*/
@GetMapping("/loadTree")
public Result> loadTree(HttpServletRequest httpServletRequest) {
List list = areaService.loadTree();
return Result.ok(list);
}
}