| | |
| | | package com.ruoyi.stock.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl; |
| | | import com.ruoyi.approve.vo.ApproveProcessVO; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.stock.dto.StockInRecordDto; |
| | | import com.ruoyi.stock.dto.StockInventoryDto; |
| | | import com.ruoyi.stock.dto.StockOutRecordDto; |
| | | import com.ruoyi.stock.dto.StockUninventoryDto; |
| | | import com.ruoyi.stock.execl.StockInventoryExportData; |
| | | import com.ruoyi.stock.execl.StockUnInventoryExportData; |
| | | import com.ruoyi.stock.mapper.StockUninventoryMapper; |
| | | import com.ruoyi.stock.pojo.StockInRecord; |
| | | import com.ruoyi.stock.pojo.StockUninventory; |
| | | import com.ruoyi.stock.service.StockInRecordService; |
| | | import com.ruoyi.stock.service.StockOutRecordService; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.time.LocalDate; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | private StockUninventoryMapper stockUninventoryMapper; |
| | | private StockOutRecordService stockOutRecordService; |
| | | private StockInRecordService stockInRecordService; |
| | | private ApproveProcessServiceImpl approveProcessService; |
| | | |
| | | @Override |
| | | public IPage<StockUninventoryDto> pageStockUninventory(Page page, StockUninventoryDto stockUninventoryDto) { |
| | |
| | | stockInRecordDto.setRecordType(stockUninventoryDto.getRecordType()); |
| | | stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity()); |
| | | stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId()); |
| | | stockInRecordDto.setRemark(stockUninventoryDto.getRemark()); |
| | | stockInRecordDto.setType("1"); |
| | | stockInRecordService.add(stockInRecordDto); |
| | | //再进行新增库存数量库存 |
| | | //先查询库存表中的产品是否存在,不存在新增,存在更新 |
| | | StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId())); |
| | | if (ObjectUtils.isEmpty(oldStockUnInventory)) { |
| | | StockUninventory newStockUnInventory = new StockUninventory(); |
| | | newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId()); |
| | | newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity()); |
| | | newStockUnInventory.setVersion(1); |
| | | newStockUnInventory.setRemark(stockUninventoryDto.getRemark()); |
| | | stockUninventoryMapper.insert(newStockUnInventory); |
| | | }else { |
| | | stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto); |
| | | int add = stockInRecordService.add(stockInRecordDto); |
| | | |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (add > 0){ |
| | | try { |
| | | addApproveByPurchase(loginUser,stockInRecordDto); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception { |
| | | ApproveProcessVO approveProcessVO = new ApproveProcessVO(); |
| | | approveProcessVO.setApproveType(9); |
| | | approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId()); |
| | | approveProcessVO.setApproveReason(stockInRecordDto.getInboundBatches()); |
| | | approveProcessVO.setApproveUserIds(String.valueOf(1)); |
| | | approveProcessVO.setApproveUser(loginUser.getUserId()); |
| | | approveProcessVO.setApproveTime(LocalDate.now().toString()); |
| | | approveProcessVO.setInventoryReview(false); |
| | | approveProcessVO.setStorageType("不合格入库"); |
| | | approveProcessVO.setRecordId(stockInRecordDto.getId()); |
| | | approveProcessService.addApprove(approveProcessVO); |
| | | } |
| | | |
| | | /** |
| | | * 更新或创建非良品库存信息 |
| | | * @param stockInRecord 非良品库存DTO对象 |
| | | */ |
| | | public void updateOrCreateStockUninventory(StockInRecord stockInRecord) { |
| | | // 先查询库存表中的产品是否存在 |
| | | StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne( |
| | | new QueryWrapper<StockUninventory>().lambda() |
| | | .eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId()) |
| | | ); |
| | | |
| | | if (ObjectUtils.isEmpty(oldStockUnInventory)) { |
| | | // 不存在则新增 |
| | | StockUninventory newStockUnInventory = new StockUninventory(); |
| | | newStockUnInventory.setProductModelId(stockInRecord.getProductModelId()); |
| | | newStockUnInventory.setQualitity(stockInRecord.getStockInNum()); |
| | | newStockUnInventory.setVersion(1); |
| | | newStockUnInventory.setRemark(stockInRecord.getRemark()); |
| | | stockUninventoryMapper.insert(newStockUnInventory); |
| | | } else { |
| | | LambdaUpdateWrapper<StockUninventory> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | if (stockInRecord.getStockInNum() != null) { |
| | | updateWrapper.setSql("qualitity = qualitity + " + stockInRecord.getStockInNum()); |
| | | } |
| | | updateWrapper.setSql("version = version + 1"); |
| | | String remark = stockInRecord.getRemark(); |
| | | if (remark != null && !remark.isEmpty()) { |
| | | updateWrapper.set(StockUninventory::getRemark, remark); |
| | | } |
| | | updateWrapper.set(StockUninventory::getUpdateTime, new Date()); |
| | | updateWrapper.eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId()); |
| | | stockUninventoryMapper.update(null, updateWrapper); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) { |
| | | List<StockInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto); |
| | | ExcelUtil<StockInventoryExportData> util = new ExcelUtil<>(StockInventoryExportData.class); |
| | | List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto); |
| | | ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class); |
| | | util.exportExcel(response,list, "不合格库存信息"); |
| | | } |
| | | |