xiaoyi
10 小时以前 df1917ff3b5be2a5fbd180cf9db7307dce919043
feat 功能修正
已修改5个文件
30 ■■■■■ 文件已修改
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/packages/MesWmPackageLineDO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/packages/MesWmPackageLineDO.java
@@ -4,6 +4,7 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
@@ -54,6 +55,7 @@
     *
     * 关联 {@link MesProWorkOrderDO#getId()}
     */
    @TableField(exist = false)
    private Long workOrderId;
    /**
     * 有效期
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java
@@ -25,4 +25,9 @@
        delete(MesWmPackageLineDO::getPackageId, packageId);
    }
    default Long selectCountByPackageId(Long packageId) {
        return selectCount(new LambdaQueryWrapperX<MesWmPackageLineDO>()
                .eq(MesWmPackageLineDO::getPackageId, packageId));
    }
}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineService.java
@@ -58,4 +58,12 @@
     */
    void deletePackageLineByPackageId(Long packageId);
    /**
     * 查询装箱明细数量
     *
     * @param packageId 装箱单 ID
     * @return 明细数量
     */
    Long getPackageLineCountByPackageId(Long packageId);
}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java
@@ -92,6 +92,11 @@
        packageLineMapper.deleteByPackageId(packageId);
    }
    @Override
    public Long getPackageLineCountByPackageId(Long packageId) {
        return packageLineMapper.selectCountByPackageId(packageId);
    }
    // ========== 校验方法 ==========
    /**
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
@@ -44,6 +44,7 @@
    private CrmCustomerApi customerApi;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Long createPackage(MesWmPackageSaveReqVO createReqVO) {
        // 校验编码唯一性
        validateCodeUnique(null, createReqVO.getCode());
@@ -61,6 +62,7 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updatePackage(MesWmPackageSaveReqVO updateReqVO) {
        // 校验存在且为草稿
        validatePackageExistsAndDraft(updateReqVO.getId());
@@ -101,9 +103,15 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void finishPackage(Long id) {
        // 校验存在且为草稿
        validatePackageExistsAndDraft(id);
        // 装箱单必须存在装箱明细
        if (packageLineService.getPackageLineCountByPackageId(id) == 0) {
            throw exception(WM_PACKAGE_LINE_NOT_EXISTS);
        }
        // 更新状态为已完成
        packageMapper.updateById(new MesWmPackageDO()
@@ -116,6 +124,7 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addChildPackage(Long parentId, Long childId) {
        // 校验父箱存在且为草稿
        validatePackageExistsAndDraft(parentId);
@@ -129,6 +138,7 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void removeChildPackage(Long childId) {
        // 校验子箱存在
        MesWmPackageDO child = validatePackageExists(childId);