From dff404ac7e0571e7033a42ed189529e70fdc09ee Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期四, 05 六月 2025 17:47:02 +0800 Subject: [PATCH] 备件借用归还 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveController.java | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 172 insertions(+), 3 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveController.java index 6858b2a..72e64b0 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveController.java @@ -1,14 +1,27 @@ package org.jeecg.modules.eam.controller; +import java.math.BigDecimal; 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.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.system.query.QueryGenerator; +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.EamSparePartRequisition; +import org.jeecg.modules.eam.service.IEamSparePartInventoryService; +import org.jeecg.modules.eam.service.IEamSparePartReceiveDetailService; import org.jeecg.modules.eam.service.IEamSparePartReceiveService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -16,7 +29,7 @@ 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; @@ -37,6 +50,12 @@ @Resource private IEamSparePartReceiveService eamSparePartReceiveService; + @Resource + private IEamSparePartReceiveDetailService sparePartReceiveDetailService; + + @Resource + private IEamSparePartInventoryService sparePartInventoryService; + /** * 鍒嗛〉鍒楄〃鏌ヨ * @@ -52,9 +71,28 @@ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { - QueryWrapper<EamSparePartReceive> queryWrapper = QueryGenerator.initQueryWrapper(eamSparePartReceive, req.getParameterMap()); +// QueryWrapper<EamSparePartReceive> queryWrapper = QueryGenerator.initQueryWrapper(eamSparePartReceive, req.getParameterMap()); + QueryWrapper<EamSparePartReceive> queryWrapper = new QueryWrapper<>(); + String receiveCode = eamSparePartReceive.getReceiveCode(); + if(StringUtils.isNotBlank(receiveCode)){ + queryWrapper.like("receive_code",receiveCode); + } + String receiveStatus = eamSparePartReceive.getReceiveStatus(); + if(StringUtils.isNotBlank(receiveStatus)){ + queryWrapper.eq("receive_status",receiveStatus); + } + String receiveUser = eamSparePartReceive.getReceiveUser(); + if(StringUtils.isNotBlank(receiveUser)){ + queryWrapper.like("receive_user",receiveUser); + } + queryWrapper.orderByDesc("create_time"); Page<EamSparePartReceive> page = new Page<EamSparePartReceive>(pageNo, pageSize); IPage<EamSparePartReceive> pageList = eamSparePartReceiveService.page(page, queryWrapper); + for (EamSparePartReceive record : pageList.getRecords()) { + List<EamSparePartReceiveDetail> details = sparePartReceiveDetailService.lambdaQuery() + .eq(EamSparePartReceiveDetail::getSparePartReceiveId, record.getId()).list(); + record.setSparePartReceiveDetails(details); + } return Result.OK(pageList); } @@ -66,8 +104,18 @@ */ @ApiOperation(value = "澶囧搧澶囦欢棰嗙敤鍗�-娣诲姞", notes = "澶囧搧澶囦欢棰嗙敤鍗�-娣诲姞") @PostMapping(value = "/add") + @Transactional(rollbackFor = Exception.class) public Result<?> add(@RequestBody EamSparePartReceive eamSparePartReceive) { + eamSparePartReceive.setReceiveStatus(BusinessCodeConst.receive_status_1); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String realName = user.getRealname(); + eamSparePartReceive.setReceiveUser(realName); eamSparePartReceiveService.save(eamSparePartReceive); + List<EamSparePartReceiveDetail> sparePartReceiveDetails = eamSparePartReceive.getSparePartReceiveDetails(); + for (EamSparePartReceiveDetail sparePartReceiveDetail : sparePartReceiveDetails) { + sparePartReceiveDetail.setSparePartReceiveId(eamSparePartReceive.getId()); + sparePartReceiveDetailService.saveOrUpdate(sparePartReceiveDetail); + } return Result.OK("娣诲姞鎴愬姛锛�"); } @@ -79,8 +127,18 @@ */ @ApiOperation(value = "澶囧搧澶囦欢棰嗙敤鍗�-缂栬緫", notes = "澶囧搧澶囦欢棰嗙敤鍗�-缂栬緫") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + @Transactional(rollbackFor = Exception.class) public Result<?> edit(@RequestBody EamSparePartReceive eamSparePartReceive) { eamSparePartReceiveService.updateById(eamSparePartReceive); + List<EamSparePartReceiveDetail> details = sparePartReceiveDetailService.lambdaQuery().eq(EamSparePartReceiveDetail::getSparePartReceiveId, eamSparePartReceive.getId()).list(); + for (EamSparePartReceiveDetail detail : details) { + sparePartReceiveDetailService.removeById(detail); + } + List<EamSparePartReceiveDetail> sparePartReceiveDetails = eamSparePartReceive.getSparePartReceiveDetails(); + for (EamSparePartReceiveDetail sparePartReceiveDetail : sparePartReceiveDetails) { + sparePartReceiveDetail.setSparePartReceiveId(eamSparePartReceive.getId()); + sparePartReceiveDetailService.saveOrUpdate(sparePartReceiveDetail); + } return Result.OK("缂栬緫鎴愬姛!"); } @@ -92,7 +150,13 @@ */ @ApiOperation(value = "澶囧搧澶囦欢棰嗙敤鍗�-閫氳繃id鍒犻櫎", notes = "澶囧搧澶囦欢棰嗙敤鍗�-閫氳繃id鍒犻櫎") @DeleteMapping(value = "/delete") + @Transactional(rollbackFor = Exception.class) public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + List<EamSparePartReceiveDetail> details = sparePartReceiveDetailService.lambdaQuery() + .eq(EamSparePartReceiveDetail::getSparePartReceiveId,id).list(); + for (EamSparePartReceiveDetail detail : details) { + sparePartReceiveDetailService.removeById(detail); + } eamSparePartReceiveService.removeById(id); return Result.OK("鍒犻櫎鎴愬姛!"); } @@ -105,7 +169,16 @@ */ @ApiOperation(value = "澶囧搧澶囦欢棰嗙敤鍗�-鎵归噺鍒犻櫎", notes = "澶囧搧澶囦欢棰嗙敤鍗�-鎵归噺鍒犻櫎") @DeleteMapping(value = "/deleteBatch") + @Transactional(rollbackFor = Exception.class) public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + List<String> strings = Arrays.asList(ids.split(",")); + for (String s : strings) { + List<EamSparePartReceiveDetail> details = sparePartReceiveDetailService.lambdaQuery() + .eq(EamSparePartReceiveDetail::getSparePartReceiveId,s).list(); + for (EamSparePartReceiveDetail detail : details) { + sparePartReceiveDetailService.removeById(detail); + } + } this.eamSparePartReceiveService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("鎵归噺鍒犻櫎鎴愬姛锛�"); } @@ -124,6 +197,102 @@ } /** + * 鎻愪氦 + * + * @return + */ + @AutoLog(value = "澶囦欢棰嗙敤-鎻愪氦") + @ApiOperation(value = "澶囦欢棰嗙敤-鎻愪氦", notes = "澶囦欢棰嗙敤-鎻愪氦") + @PostMapping(value = "/submit") + public Result<?> submitSparePartReceive(@RequestBody EamSparePartReceive eamSparePartReceive) { + eamSparePartReceive.setReceiveStatus(BusinessCodeConst.receive_status_2); + boolean b = eamSparePartReceiveService.updateById(eamSparePartReceive); + if (!b) { + return Result.error("鎻愪氦澶辫触锛�"); + } + return Result.OK("鎻愪氦鎴愬姛!"); + } + + /** + * 纭 + * + * @return + */ + @AutoLog(value = "澶囦欢棰嗙敤-纭") + @ApiOperation(value = "澶囦欢棰嗙敤-纭", notes = "澶囦欢棰嗙敤-纭") + @PostMapping(value = "/confirm") + @Transactional(rollbackFor = Exception.class) + public Result<?> confirmSparePartReceive(@RequestBody EamSparePartReceive eamSparePartReceive) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + throw new JeecgBootException("褰撳墠鐢ㄦ埛鏃犳硶纭澶囦欢棰嗙敤锛�"); + } + List<EamSparePartReceiveDetail> details = sparePartReceiveDetailService.lambdaQuery().eq(EamSparePartReceiveDetail::getSparePartReceiveId, eamSparePartReceive.getId()).list(); + for (EamSparePartReceiveDetail detail : details) { + EamSparePartInventory eamSparePartInventory = new EamSparePartInventory(); + eamSparePartInventory.setSparePartId(detail.getPartId()); + eamSparePartInventory.setInventory(detail.getReceiveNum().negate()); + eamSparePartInventory.setSparePartIntoType("2");//搴撳瓨鏉ユ簮绫诲瀷 1.鍏ュ簱 2.棰嗘枡鍑哄簱 3.褰掕繕鍏ュ簱 + sparePartInventoryService.save(eamSparePartInventory); + } + eamSparePartReceive.setApprovalUser(sysUser.getRealname()); + eamSparePartReceive.setApprovalTime(new Date()); + eamSparePartReceive.setReceiveStatus(BusinessCodeConst.receive_status_3); + boolean b = eamSparePartReceiveService.updateById(eamSparePartReceive); + if (!b) { + return Result.error("纭澶辫触锛�"); + } + return Result.OK("纭鎴愬姛!"); + } + + /** + * 褰掕繕 + * + * @return + */ + @AutoLog(value = "澶囦欢棰嗙敤-褰掕繕") + @ApiOperation(value = "澶囦欢棰嗙敤-褰掕繕", notes = "澶囦欢棰嗙敤-褰掕繕") + @PostMapping(value = "/return") + public Result<?> returnSparePartReceive(@RequestBody EamSparePartReceive eamSparePartReceive) { + eamSparePartReceive.setReceiveStatus(BusinessCodeConst.receive_status_4); + boolean b = eamSparePartReceiveService.updateById(eamSparePartReceive); + if (!b) { + return Result.error("褰掕繕澶辫触锛�"); + } + return Result.OK("褰掕繕鎴愬姛!"); + } + + /** + * 褰掕繕纭 + * + * @return + */ + @AutoLog(value = "澶囦欢棰嗙敤-褰掕繕纭") + @ApiOperation(value = "澶囦欢棰嗙敤-褰掕繕纭", notes = "澶囦欢棰嗙敤-褰掕繕纭") + @PostMapping(value = "/returnConfirm") + @Transactional(rollbackFor = Exception.class) + public Result<?> returnConfirmSparePartReceive(@RequestBody EamSparePartReceive eamSparePartReceive) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + throw new JeecgBootException("褰撳墠鐢ㄦ埛鏃犳硶纭澶囦欢褰掕繕锛�"); + } + List<EamSparePartReceiveDetail> details = sparePartReceiveDetailService.lambdaQuery().eq(EamSparePartReceiveDetail::getSparePartReceiveId, eamSparePartReceive.getId()).list(); + for (EamSparePartReceiveDetail detail : details) { + EamSparePartInventory eamSparePartInventory = new EamSparePartInventory(); + eamSparePartInventory.setSparePartId(detail.getPartId()); + eamSparePartInventory.setInventory(detail.getReceiveNum()); + eamSparePartInventory.setSparePartIntoType("3");//搴撳瓨鏉ユ簮绫诲瀷 1.鍏ュ簱 2.棰嗘枡鍑哄簱 3.褰掕繕鍏ュ簱 + sparePartInventoryService.save(eamSparePartInventory); + } + eamSparePartReceive.setReceiveStatus(BusinessCodeConst.receive_status_5); + boolean b = eamSparePartReceiveService.updateById(eamSparePartReceive); + if (!b) { + return Result.error("褰掕繕纭澶辫触锛�"); + } + return Result.OK("褰掕繕纭鎴愬姛!"); + } + + /** * 瀵煎嚭excel * * @param request -- Gitblit v1.9.3