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);