package org.jeecg.modules.eam.controller; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.entity.EamSparePartInventory; import org.jeecg.modules.eam.entity.EamSparePartReceive; import org.jeecg.modules.eam.entity.EamSparePartReceiveDetail; import org.jeecg.modules.eam.entity.EamSparePartScrap; import org.jeecg.modules.eam.service.IEamSparePartInventoryService; import org.jeecg.modules.eam.service.IEamSparePartScrapService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; /** * @Description: 备品备件报废 * @Author: Lius * @Date: 2025-03-19 * @Version: V1.0 */ @Slf4j @Api(tags = "备品备件报废") @RestController @RequestMapping("/eam/eamSparePartScrap") public class EamSparePartScrapController extends JeecgController { @Resource private IEamSparePartScrapService eamSparePartScrapService; @Resource private IEamSparePartInventoryService eamSparePartInventoryService; /** * 分页列表查询 * * @param eamSparePartScrap * @param pageNo * @param pageSize * @param req * @return */ @ApiOperation(value = "备品备件报废-分页列表查询", notes = "备品备件报废-分页列表查询") @GetMapping(value = "/list") public Result queryPageList(EamSparePartScrap eamSparePartScrap, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { // QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(eamSparePartScrap, req.getParameterMap()); QueryWrapper queryWrapper = new QueryWrapper<>(); if(StringUtils.isNotBlank(eamSparePartScrap.getScrapCode())){ queryWrapper.like("t1.scrap_code",eamSparePartScrap.getScrapCode()); } if(StringUtils.isNotBlank(eamSparePartScrap.getPartName())){ queryWrapper.like("t2.part_name",eamSparePartScrap.getPartName()); } queryWrapper.eq("t1.del_flag","0"); queryWrapper.orderByDesc("t1.create_time"); Page page = new Page(pageNo, pageSize); IPage pageList = eamSparePartScrapService.queryPageList(page, queryWrapper); return Result.OK(pageList); } /** * 添加 * * @param eamSparePartScrap * @return */ @ApiOperation(value = "备品备件报废-添加", notes = "备品备件报废-添加") @PostMapping(value = "/add") public Result add(@RequestBody EamSparePartScrap eamSparePartScrap) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); eamSparePartScrap.setScrapStatus(BusinessCodeConst.scrap_status_1); eamSparePartScrap.setReportUser(user.getRealname()); eamSparePartScrapService.save(eamSparePartScrap); return Result.OK("添加成功!"); } /** * 编辑 * * @param eamSparePartScrap * @return */ @ApiOperation(value = "备品备件报废-编辑", notes = "备品备件报废-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result edit(@RequestBody EamSparePartScrap eamSparePartScrap) { eamSparePartScrapService.updateById(eamSparePartScrap); return Result.OK("编辑成功!"); } /** * 备件报废-确认 * * @return */ @AutoLog(value = "备件报废-确认") @ApiOperation(value = "备件报废-确认", notes = "备件报废-确认") @PostMapping(value = "/confirm") @Transactional(rollbackFor = Exception.class) public Result confirmSparePartScrap(@RequestBody EamSparePartScrap eamSparePartScrap) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("当前用户无法确认备件报废!"); } eamSparePartScrap.setApprovalUser(sysUser.getRealname()); eamSparePartScrap.setApprovalTime(new Date()); eamSparePartScrap.setScrapStatus(BusinessCodeConst.scrap_status_2); boolean b = eamSparePartScrapService.updateById(eamSparePartScrap); if (!b) { return Result.error("确认报废失败!"); }else{ EamSparePartInventory eamSparePartInventory = new EamSparePartInventory(); eamSparePartInventory.setSparePartId(eamSparePartScrap.getSparePartsId()); eamSparePartInventory.setInventory(eamSparePartScrap.getScrapNum().negate()); eamSparePartInventory.setSparePartIntoType("4");//库存来源类型 1.入库 2.领料出库 3.归还入库 4.报废出库 eamSparePartInventoryService.save(eamSparePartInventory); return Result.OK("确认报废成功!"); } } /** * 通过id删除 * * @param id * @return */ @ApiOperation(value = "备品备件报废-通过id删除", notes = "备品备件报废-通过id删除") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name = "id", required = true) String id) { eamSparePartScrapService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 * * @param ids * @return */ @ApiOperation(value = "备品备件报废-批量删除", notes = "备品备件报废-批量删除") @DeleteMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { this.eamSparePartScrapService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ @ApiOperation(value = "备品备件报废-通过id查询", notes = "备品备件报废-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { EamSparePartScrap eamSparePartScrap = eamSparePartScrapService.getById(id); return Result.OK(eamSparePartScrap); } /** * 导出excel * * @param request * @param eamSparePartScrap */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamSparePartScrap eamSparePartScrap) { return super.exportXls(request, eamSparePartScrap, EamSparePartScrap.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, EamSparePartScrap.class); } }