package org.jeecg.modules.mdc.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.dto.MdcBigScreenEquipmentDto; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcWorkshopEquipment; import org.jeecg.modules.mdc.entity.MdcWorkshopInfo; import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.mdc.service.IMdcWorkshopEquipmentService; import org.jeecg.modules.mdc.service.IMdcWorkshopInfoService; import org.jeecg.modules.mdc.vo.MdcWorkshopEquipmentVo; import org.jeecg.modules.mdc.vo.WorkshopEquipmentVo; import org.jeecg.modules.system.entity.MdcProduction; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; /** * @Description: 大屏车间信息 * @Author: Lius * @Date: 2023-10-11 * @Version: V1.0 */ @Slf4j @Api(tags = "大屏车间信息") @RestController @RequestMapping("/mdc/mdcWorkshopInfo") public class MdcWorkshopInfoController extends JeecgController { @Resource private IMdcWorkshopInfoService mdcWorkshopInfoService; @Resource private IMdcEquipmentService mdcEquipmentService; @Resource private IMdcWorkshopEquipmentService mdcWorkshopEquipmentService; /** * 分页列表查询 * * @param mdcWorkshopInfo * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "大屏车间信息-分页列表查询") @ApiOperation(value = "大屏车间信息-分页列表查询", notes = "大屏车间信息-分页列表查询") @GetMapping(value = "/list") public Result queryPageList(MdcWorkshopInfo mdcWorkshopInfo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(mdcWorkshopInfo, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = mdcWorkshopInfoService.page(page, queryWrapper); return Result.OK(pageList); } /** * 添加 * * @param mdcWorkshopInfo * @return */ @AutoLog(value = "大屏车间信息-添加") @ApiOperation(value = "大屏车间信息-添加", notes = "大屏车间信息-添加") @PostMapping(value = "/add") public Result add(@RequestBody MdcWorkshopInfo mdcWorkshopInfo) { mdcWorkshopInfoService.save(mdcWorkshopInfo); return Result.OK("添加成功!"); } /** * 编辑 * * @param mdcWorkshopInfo * @return */ @AutoLog(value = "大屏车间信息-编辑") @ApiOperation(value = "大屏车间信息-编辑", notes = "大屏车间信息-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result edit(@RequestBody MdcWorkshopInfo mdcWorkshopInfo) { mdcWorkshopInfoService.updateById(mdcWorkshopInfo); return Result.OK("编辑成功!"); } /** * 通过id删除 * * @param id * @return */ @AutoLog(value = "大屏车间信息-通过id删除") @ApiOperation(value = "大屏车间信息-通过id删除", notes = "大屏车间信息-通过id删除") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name = "id", required = true) String id) { mdcWorkshopInfoService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 * * @param ids * @return */ @AutoLog(value = "大屏车间信息-批量删除") @ApiOperation(value = "大屏车间信息-批量删除", notes = "大屏车间信息-批量删除") @DeleteMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { this.mdcWorkshopInfoService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ @AutoLog(value = "大屏车间信息-通过id查询") @ApiOperation(value = "大屏车间信息-通过id查询", notes = "大屏车间信息-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { MdcWorkshopInfo mdcWorkshopInfo = mdcWorkshopInfoService.getById(id); return Result.OK(mdcWorkshopInfo); } /** * 通过id查询 * * @param productionId * @return */ @AutoLog(value = "大屏车间信息-通过ProductionId查询") @ApiOperation(value = "大屏车间信息-通过ProductionId查询", notes = "大屏车间信息-通过ProductionId查询") @GetMapping(value = "/queryByProductionId") public Result queryByProductionId(@RequestParam(name = "productionId", required = true) String productionId) { MdcWorkshopInfo mdcWorkshopInfo = mdcWorkshopInfoService.getOne(new LambdaQueryWrapper().eq(MdcWorkshopInfo::getProductionId, productionId)); return Result.OK(mdcWorkshopInfo); } /** * 导出excel * * @param request * @param mdcWorkshopInfo */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, MdcWorkshopInfo mdcWorkshopInfo) { return super.exportXls(request, mdcWorkshopInfo, MdcWorkshopInfo.class, "大屏车间信息"); } /** * 通过excel导入数据 * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, MdcWorkshopInfo.class); } /** * 获取设备列表 * * @return */ @AutoLog(value = "大屏车间信息-根据大屏车间id查询设备列表") @ApiOperation(value = "大屏车间信息-根据大屏车间id查询设备列表", notes = "大屏车间信息-根据大屏车间id查询设备列表") @GetMapping(value = "/workshopEquipmentList") public Result> workshopEquipmentList(WorkshopEquipmentVo workshopEquipmentVo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { Page page = new Page<>(pageNo, pageSize); IPage pageList = mdcEquipmentService.getEquipmentByWorkshopId(page, workshopEquipmentVo); return Result.OK(pageList); } /** * 删除指定大屏车间和设备关系 */ @AutoLog(value = "大屏车间信息-删除指定大屏车间和设备关系") @ApiOperation(value = "大屏车间信息-删除指定大屏车间和设备关系", notes = "大屏车间信息-删除指定大屏车间和设备关系") @DeleteMapping(value = "/deleteWorkshopEquipment") public Result deleteWorkshopEquipment(@RequestParam(name = "workshopId") String workshopId, @RequestParam(name = "equipmentId", required = true) String equipmentId) { try { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(MdcWorkshopEquipment::getWorkshopId, workshopId).eq(MdcWorkshopEquipment::getEquipmentId, equipmentId); mdcWorkshopEquipmentService.remove(queryWrapper); return Result.OK("删除成功!"); } catch (Exception e) { return Result.error("删除失败!"); } } /** * 批量删除指定大屏车间和设备关系 */ @AutoLog(value = "大屏车间信息-批量删除指定大屏车间和设备关系") @ApiOperation(value = "大屏车间信息-批量删除指定大屏车间和设备关系", notes = "大屏车间信息-批量删除指定大屏车间和设备关系") @DeleteMapping(value = "/deleteWorkshopEquipmentBatch") public Result deleteWorkshopEquipmentBatch(@RequestParam(name = "workshopId") String workshopId, @RequestParam(name = "equipmentIds", required = true) String equipmentIds) { try { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(MdcWorkshopEquipment::getWorkshopId, workshopId).in(MdcWorkshopEquipment::getEquipmentId, Arrays.asList(equipmentIds.split(","))); mdcWorkshopEquipmentService.remove(queryWrapper); return Result.OK("删除成功!"); } catch (Exception e) { return Result.error("删除失败!"); } } /** * 新增大屏车间与设备关系 */ @AutoLog(value = "大屏车间信息-新增大屏车间与设备关系") @ApiOperation(value = "大屏车间信息-新增大屏车间与设备关系", notes = "大屏车间信息-新增大屏车间与设备关系") @PostMapping(value = "/addWorkshopEquipment") public Result addWorkshopEquipment(@RequestBody MdcWorkshopEquipmentVo mdcWorkshopEquipmentVo) { try { String workshopId = mdcWorkshopEquipmentVo.getWorkshopId(); for (String equipmentId : mdcWorkshopEquipmentVo.getEquipmentIdList()) { List list = mdcEquipmentService.list(new LambdaQueryWrapper().eq(MdcEquipment::getEquipmentId, equipmentId)); if (list != null && !list.isEmpty()) { MdcWorkshopEquipment mdcWorkshopEquipment = new MdcWorkshopEquipment(); mdcWorkshopEquipment.setWorkshopId(workshopId); mdcWorkshopEquipment.setEquipmentId(equipmentId); mdcWorkshopEquipment.setCoordinateLeft(0); mdcWorkshopEquipment.setCoordinateTop(0); mdcWorkshopEquipment.setVw(100); mdcWorkshopEquipment.setVh(100); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(MdcWorkshopEquipment::getWorkshopId, workshopId).eq(MdcWorkshopEquipment::getEquipmentId, equipmentId); MdcWorkshopEquipment one = mdcWorkshopEquipmentService.getOne(queryWrapper); if (one == null) { mdcWorkshopEquipmentService.save(mdcWorkshopEquipment); } } } return Result.OK("添加成功!"); } catch (Exception e) { return Result.error("新增失败!"); } } /** * 新增大屏车间与设备关系 */ @AutoLog(value = "大屏车间信息-首页获取大屏入口列表") @ApiOperation(value = "大屏车间信息-首页获取大屏入口列表", notes = "大屏车间信息-首页获取大屏入口列表") @GetMapping(value = "/getWorkshopList") public Result> getWorkshopList() { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); List list = mdcWorkshopInfoService.listByUser(userId); return Result.OK(list); } /** * 大屏 */ @AutoLog(value = "大屏车间信息-大屏信息") @ApiOperation(value = "大屏车间信息-大屏信息", notes = "大屏车间信息-大屏信息") @GetMapping(value = "/getBigScreenInfo") public Result getBigScreenInfo(@RequestParam(name = "productionId", required = true) String productionId) { List result = mdcWorkshopInfoService.getBigScreenInfo(productionId); return Result.OK(result); } /** * 大屏 */ @AutoLog(value = "大屏车间信息-保存设备坐标大小信息") @ApiOperation(value = "大屏车间信息-保存设备坐标大小信息", notes = "大屏车间信息-保存设备坐标大小信息") @PutMapping(value = "/saveEquipmentCoordinate") public Result saveEquipmentCoordinate(@RequestBody List workshopEquipmentList) { try { mdcWorkshopEquipmentService.updateBatchById(workshopEquipmentList); return Result.OK("保存成功!"); } catch (Exception e) { return Result.error("保存失败!"); } } /** * 查询车间 */ @AutoLog(value = "大屏车间信息-查询车间") @ApiOperation(value = "大屏车间信息-查询车间", notes = "大屏车间信息-查询车间") @GetMapping(value = "/getProductionList") public Result> getProductionList() { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); List list = mdcWorkshopInfoService.productionListByUser(userId); return Result.OK(list); } }