liding
4 天以前 5bd9a135bae4ed6c57950cf0a160f471bc99d645
fix:入库前需审批,审批后入库
已修改7个文件
78 ■■■■■ 文件已修改
src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/StockInRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/StockInventoryService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/stock/StockInRecordMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
@@ -26,4 +26,9 @@
    //现存量
    private String currentStock;
    //订单
    private String npsNo;
    //工单
    private String workOrderNo;
}
src/main/java/com/ruoyi/stock/service/StockInRecordService.java
@@ -12,7 +12,7 @@
public interface StockInRecordService extends IService<StockInRecord> {
    IPage<StockInRecordDto> listPage(Page page, StockInRecordDto stockInRecordDto);
    int add(StockInRecordDto stockInRecordDto);
    Long add(StockInRecordDto stockInRecordDto);
    int update(Long id, StockInRecordDto stockInRecordDto);
src/main/java/com/ruoyi/stock/service/StockInventoryService.java
@@ -43,5 +43,5 @@
    void updateOrCreateStockInventory(StockInRecord stockInRecord);
    void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception;
    void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception;
}
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -52,12 +52,17 @@
    // 新增入库
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int add(StockInRecordDto stockInRecordDto) {
    public Long add(StockInRecordDto stockInRecordDto) {
        String no = OrderUtils.countTodayByCreateTime(stockInRecordMapper, "RK");
        stockInRecordDto.setInboundBatches(no);
        StockInRecord stockInRecord = new StockInRecord();
        BeanUtils.copyProperties(stockInRecordDto, stockInRecord);
        return stockInRecordMapper.insert(stockInRecord);
        int insertRows = stockInRecordMapper.insert(stockInRecord);
        Long insertId = stockInRecord.getId(); // 替换为你的实际主键字段:getRecordId()/getInboundId() 等
        return insertRows > 0 ? insertId : null;
    }
    @Override
@@ -127,7 +132,7 @@
    public int updateStockInRecord(StockInRecordDto stockInRecordDto) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        try {
            stockInventoryService.addApproveByPurchase(loginUser, stockInRecordDto);
            stockInventoryService.addApproveByPurchase(loginUser, stockInRecordDto,stockInRecordDto.getId());
        } catch (Exception e) {
            e.printStackTrace();
        }
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -78,11 +78,11 @@
        stockInRecordDto.setWarnNum(stockInventoryDto.getWarnNum());
        stockInRecordDto.setLockedQuantity(stockInventoryDto.getLockedQuantity());
        stockInRecordDto.setType("0");
        int add = stockInRecordService.add(stockInRecordDto);
        Long id = stockInRecordService.add(stockInRecordDto);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        if (add > 0) {
        if (id != null) {
            try {
                addApproveByPurchase(loginUser, stockInRecordDto);
                addApproveByPurchase(loginUser, stockInRecordDto,id);
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -90,7 +90,7 @@
        return true;
    }
    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception {
    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception {
        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
        approveProcessVO.setApproveType(9);
        approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
@@ -100,7 +100,7 @@
        approveProcessVO.setApproveTime(LocalDate.now().toString());
        approveProcessVO.setInventoryReview(false);
        approveProcessVO.setStorageType("合格入库");
        approveProcessVO.setRecordId(stockInRecordDto.getId());
        approveProcessVO.setRecordId(id);
        approveProcessService.addApprove(approveProcessVO);
    }
src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -64,13 +64,13 @@
        stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
        stockInRecordDto.setRemark(stockUninventoryDto.getRemark());
        stockInRecordDto.setType("1");
        int add = stockInRecordService.add(stockInRecordDto);
        Long id = stockInRecordService.add(stockInRecordDto);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        if (add > 0){
        if (id != null) {
            try {
                addApproveByPurchase(loginUser,stockInRecordDto);
            }catch (Exception e){
                addApproveByPurchase(loginUser, stockInRecordDto,id);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
@@ -78,7 +78,7 @@
        return 1;
    }
    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception {
    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception {
        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
        approveProcessVO.setApproveType(9);
        approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
@@ -88,12 +88,13 @@
        approveProcessVO.setApproveTime(LocalDate.now().toString());
        approveProcessVO.setInventoryReview(false);
        approveProcessVO.setStorageType("不合格入库");
        approveProcessVO.setRecordId(stockInRecordDto.getId());
        approveProcessVO.setRecordId(id);
        approveProcessService.addApprove(approveProcessVO);
    }
    /**
     * 更新或创建非良品库存信息
     *
     * @param stockInRecord 非良品库存DTO对象
     */
    public void updateOrCreateStockUninventory(StockInRecord stockInRecord) {
@@ -142,7 +143,7 @@
        StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
        if (ObjectUtils.isEmpty(oldStockInventory)) {
            throw new RuntimeException("产品库存不存在");
        }else {
        } else {
            stockUninventoryMapper.updateSubtractStockUnInventory(stockUninventoryDto);
        }
        return 1;
@@ -152,18 +153,18 @@
    public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
        List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto);
        ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
        util.exportExcel(response,list, "不合格库存信息");
        util.exportExcel(response, list, "不合格库存信息");
    }
    @Override
    public Boolean frozenStock(StockInventoryDto stockInventoryDto) {
        StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
        if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
        if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
            throw new RuntimeException("冻结数量不能超过库存数量");
        }
        if (ObjectUtils.isEmpty(stockUninventory.getLockedQuantity())) {
            stockUninventory.setLockedQuantity(stockInventoryDto.getLockedQuantity());
        }else {
        } else {
            stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().add(stockInventoryDto.getLockedQuantity()));
        }
        return this.updateById(stockUninventory);
@@ -172,7 +173,7 @@
    @Override
    public Boolean thawStock(StockInventoryDto stockInventoryDto) {
        StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
        if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
        if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
            throw new RuntimeException("解冻数量不能超过冻结数量");
        }
        stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().subtract(stockInventoryDto.getLockedQuantity()));
src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -58,16 +58,25 @@
    </select>
    <select id="selectByRecord" resultType="com.ruoyi.stock.dto.StockInRecordDto">
        SELECT
            po.nps_no,
            pwo.work_order_no,
            sir.*,
            p.product_name as product_name,
            p.product_name AS product_name,
            pm.model,
            pm.unit,
            u.nick_name as createBy
        FROM stock_in_record as sir
                 LEFT JOIN product_model as pm on sir.product_model_id = pm.id
                 LEFT JOIN product as p on pm.product_id = p.id
                 LEFT JOIN sys_user as u on sir.create_user = u.user_id
        WHERE sir.id= #{id}
        order by sir.id desc
            u.nick_name AS createBy
        FROM
            stock_in_record AS sir
                LEFT JOIN product_model AS pm ON sir.product_model_id = pm.id
                LEFT JOIN product AS p ON pm.product_id = p.id
                LEFT JOIN sys_user AS u ON sir.create_user = u.user_id
                LEFT JOIN quality_inspect qi ON qi.id = sir.record_id
                LEFT JOIN production_product_main ppm ON ppm.id = qi.product_main_id
                LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
                LEFT JOIN product_order po ON po.id = pwo.product_order_id
        WHERE
            sir.id = 233
        ORDER BY
            sir.id DESC
    </select>
</mapper>