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-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java | 9 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveDetailController.java | 14 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveController.java | 175 ++++++++++++++++++++++++++++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceiveDetail.java | 25 ++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceive.java | 24 ++++ 5 files changed, 240 insertions(+), 7 deletions(-) diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java index 885e674..7adbd71 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java @@ -37,6 +37,15 @@ String SPARE_REQUISITION_STATUS_5 = "5"; /** + * 澶囦欢棰嗙敤鍗曠姸鎬� 1:寰呴鍙� 2:寰呭鎵� 3:宸查鍙� 4:宸查鍙� 5:宸查鍙� + */ + String receive_status_1 = "1"; //寰呴鍙� + String receive_status_2 = "2"; //寰呭鎵� + String receive_status_3 = "3"; //宸查鍙� + String receive_status_4 = "4"; //寰呭綊杩� + String receive_status_5 = "5"; //宸插綊杩� + + /** * 宀椾綅缂栫爜 */ //鎿嶄綔宸� 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 diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveDetailController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveDetailController.java index 7860618..4431a7d 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveDetailController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartReceiveDetailController.java @@ -9,6 +9,8 @@ import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.modules.eam.entity.EamSparePartReceiveDetail; +import org.jeecg.modules.eam.entity.EamSparePartRequisitionDetail; +import org.jeecg.modules.eam.entity.EamSpareParts; import org.jeecg.modules.eam.service.IEamSparePartReceiveDetailService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -16,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.eam.service.IEamSparePartsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -37,6 +40,9 @@ @Resource private IEamSparePartReceiveDetailService eamSparePartReceiveDetailService; + @Resource + private IEamSparePartsService eamSparePartsService; + /** * 鍒嗛〉鍒楄〃鏌ヨ * @@ -55,6 +61,14 @@ QueryWrapper<EamSparePartReceiveDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamSparePartReceiveDetail, req.getParameterMap()); Page<EamSparePartReceiveDetail> page = new Page<EamSparePartReceiveDetail>(pageNo, pageSize); IPage<EamSparePartReceiveDetail> pageList = eamSparePartReceiveDetailService.page(page, queryWrapper); + for (EamSparePartReceiveDetail record : pageList.getRecords()) { + String partId = record.getPartId(); + EamSpareParts part = eamSparePartsService.getById(partId); + record.setPartCode(part.getPartCode()); + record.setPartName(part.getPartName()); + record.setPartModel(part.getPartModel()); + record.setPartSpecification(part.getPartSpecification()); + } return Result.OK(pageList); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceive.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceive.java index 6d00c6e..12d2b8a 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceive.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceive.java @@ -1,16 +1,21 @@ package org.jeecg.modules.eam.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.entity.JeecgEntity; import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; import java.util.Date; +import java.util.List; +import java.util.Map; /** * @Description: 澶囧搧澶囦欢棰嗙敤鍗� @@ -31,8 +36,8 @@ * 鍒犻櫎鏍囪 */ @Excel(name = "鍒犻櫎鏍囪", width = 15) - @ApiModelProperty(value = "鍒犻櫎鏍囪") - private Integer delFlag; + @ApiModelProperty(value = "鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)") + private Integer delFlag = CommonConstant.DEL_FLAG_0; /** * 棰嗙敤鍗曠紪鐮� */ @@ -56,12 +61,14 @@ */ @Excel(name = "棰嗙敤鐘舵��", width = 15) @ApiModelProperty(value = "棰嗙敤鐘舵��") + @Dict(dicCode = "receive_status") private String receiveStatus; /** * 鏄惁闇�瑕佸綊杩�;鏄細瀛樺湪褰掕繕鍔ㄤ綔锛屽惁锛氱洿鎺ュ畬鎴� */ @Excel(name = "鏄惁闇�瑕佸綊杩�;鏄細瀛樺湪褰掕繕鍔ㄤ綔锛屽惁锛氱洿鎺ュ畬鎴�", width = 15) @ApiModelProperty(value = "鏄惁闇�瑕佸綊杩�;鏄細瀛樺湪褰掕繕鍔ㄤ綔锛屽惁锛氱洿鎺ュ畬鎴�") + @Dict(dicCode = "give_back_flag") private String giveBackFlag; /** * 瀹℃牳浜� @@ -80,4 +87,17 @@ @Excel(name = "澶囨敞", width = 15) @ApiModelProperty(value = "澶囨敞") private String remark; + + /** + * 澶囦欢棰嗙敤鏄庣粏鍗� + */ + @TableField(exist = false) + private List<Map<String, Object>> sparePartReceiveDetailList; + + @TableField(exist = false) + private List<EamSparePartReceiveDetail> sparePartReceiveDetails; + + @TableField(exist = false) + private List<EamSparePartReceiveDetail> removeDetailList; + } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceiveDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceiveDetail.java index 0d6bf30..a14aae6 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceiveDetail.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSparePartReceiveDetail.java @@ -1,11 +1,13 @@ package org.jeecg.modules.eam.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.entity.JeecgEntity; import org.jeecgframework.poi.excel.annotation.Excel; @@ -31,8 +33,8 @@ * 鍒犻櫎鏍囪 */ @Excel(name = "鍒犻櫎鏍囪", width = 15) - @ApiModelProperty(value = "鍒犻櫎鏍囪") - private Integer delFlag; + @ApiModelProperty(value = "鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)") + private Integer delFlag = CommonConstant.DEL_FLAG_0; /** * 澶囦欢ID */ @@ -51,4 +53,23 @@ @Excel(name = "棰嗙敤绫诲瀷;棰嗙敤/褰掕繕", width = 15) @ApiModelProperty(value = "棰嗙敤绫诲瀷;棰嗙敤/褰掕繕") private String receiveType; + + /** + * 棰嗙敤鍗昳d + */ + @Excel(name = "棰嗙敤鍗昳d", width = 15) + @ApiModelProperty(value = "棰嗙敤鍗昳d") + private String sparePartReceiveId; + + @TableField(exist = false) + private String partCode; + + @TableField(exist = false) + private String partName; + + @TableField(exist = false) + private String partModel; + + @TableField(exist = false) + private String partSpecification; } -- Gitblit v1.9.3