feat(mes): 添加工具精简列表接口及条码自动生成逻辑

新增工具精简列表接口,支持获取工具的简化信息。同时,在创建工具、客户、设备等时,自动生成对应的条码,提升条码管理的效率。
This commit is contained in:
YunaiV
2026-03-07 14:47:58 +08:00
parent e52fda8e59
commit 138b5d3f22
17 changed files with 170 additions and 19 deletions

View File

@@ -109,6 +109,14 @@ public class MesTmToolController {
ExcelUtils.write(response, "工具台账.xls", "数据", MesTmToolRespVO.class, voList);
}
@GetMapping("/simple-list")
@Operation(summary = "获得工具精简列表")
@PreAuthorize("@ss.hasPermission('mes:tm-tool:query')")
public CommonResult<List<MesTmToolRespVO>> getToolSimpleList() {
List<MesTmToolDO> list = toolService.getToolSimpleList();
return success(BeanUtils.toBean(list, MesTmToolRespVO.class));
}
// ==================== 拼接 VO ====================
@SuppressWarnings("CodeBlock2Expr")

View File

@@ -56,5 +56,6 @@ public final class MesBizTypeConstants {
public static final int MD_WORKSTATION = 602; // 工作站MesMdWorkstationDO
public static final int MD_WORKSHOP = 603; // 车间MesMdWorkshopDO
public static final int MD_USER = 604; // 人员:系统用户
public static final int MD_CLIENT = 605; // 客户MesMdClientDO
}

View File

@@ -16,6 +16,8 @@ import java.util.Arrays;
@AllArgsConstructor
public enum BarcodeBizTypeEnum implements ArrayValuable<Integer> {
WAREHOUSE(MesBizTypeConstants.WM_WAREHOUSE, "仓库"),
LOCATION(MesBizTypeConstants.WM_LOCATION, "库区"),
AREA(MesBizTypeConstants.WM_AREA, "库位"),
PACKAGE(MesBizTypeConstants.WM_PACKAGE, "装箱单"),
STOCK(MesBizTypeConstants.WM_STOCK, "库存"),
@@ -24,8 +26,10 @@ public enum BarcodeBizTypeEnum implements ArrayValuable<Integer> {
WORKORDER(MesBizTypeConstants.PRO_WORKORDER, "工单"),
TRANSORDER(MesBizTypeConstants.PRO_TRANS_ORDER, "流转单"),
MACHINERY(MesBizTypeConstants.DV_MACHINERY, "设备"),
TOOL(MesBizTypeConstants.TM_TOOL, "工具"),
ITEM(MesBizTypeConstants.MD_ITEM, "物料"),
VENDOR(MesBizTypeConstants.MD_VENDOR, "供应商"),
CLIENT(MesBizTypeConstants.MD_CLIENT, "客户"),
WORKSTATION(MesBizTypeConstants.MD_WORKSTATION, "工作站"),
WORKSHOP(MesBizTypeConstants.MD_WORKSHOP, "车间"),
USER(MesBizTypeConstants.MD_USER, "人员");

View File

@@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.machinery.vo.MesDvMachine
import cn.iocoder.yudao.module.mes.controller.admin.dv.machinery.vo.MesDvMachinerySaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dv.machinery.MesDvMachineryDO;
import cn.iocoder.yudao.module.mes.dal.mysql.dv.machinery.MesDvMachineryMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkshopService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -41,6 +43,9 @@ public class MesDvMachineryServiceImpl implements MesDvMachineryService {
@Lazy
private MesMdWorkshopService workshopService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createMachinery(MesDvMachinerySaveReqVO createReqVO) {
// 校验设备类型存在
@@ -53,6 +58,10 @@ public class MesDvMachineryServiceImpl implements MesDvMachineryService {
// 插入
MesDvMachineryDO machinery = BeanUtils.toBean(createReqVO, MesDvMachineryDO.class);
machineryMapper.insert(machinery);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.MACHINERY.getValue(),
machinery.getId(), machinery.getCode(), machinery.getName());
return machinery.getId();
}

View File

@@ -12,6 +12,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientPage
import cn.iocoder.yudao.module.mes.controller.admin.md.client.vo.MesMdClientSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.client.MesMdClientDO;
import cn.iocoder.yudao.module.mes.dal.mysql.md.client.MesMdClientMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +41,9 @@ public class MesMdClientServiceImpl implements MesMdClientService {
@Resource
private MesMdClientMapper clientMapper;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createClient(MesMdClientSaveReqVO createReqVO) {
// 校验编码唯一
@@ -51,7 +56,10 @@ public class MesMdClientServiceImpl implements MesMdClientService {
// 插入
MesMdClientDO client = BeanUtils.toBean(createReqVO, MesMdClientDO.class);
clientMapper.insert(client);
// TODO @芋艿:客户创建后自动生成条码,依赖 WM 条码模块
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.CLIENT.getValue(),
client.getId(), client.getCode(), client.getName());
return client.getId();
}
@@ -185,6 +193,9 @@ public class MesMdClientServiceImpl implements MesMdClientService {
}
MesMdClientDO client = BeanUtils.toBean(importClient, MesMdClientDO.class);
clientMapper.insert(client);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.CLIENT.getValue(),
client.getId(), client.getCode(), client.getName());
respVO.getCreateCodes().add(importClient.getCode());
} else if (updateSupport) {
// 2.2.2 更新

View File

@@ -15,7 +15,9 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +55,8 @@ public class MesMdItemServiceImpl implements MesMdItemService {
private MesMdProductSopService productSopService;
@Resource
private MesMdProductSipService productSipService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createItem(MesMdItemSaveReqVO createReqVO) {
@@ -69,6 +73,10 @@ public class MesMdItemServiceImpl implements MesMdItemService {
MesMdItemDO item = BeanUtils.toBean(createReqVO, MesMdItemDO.class);
clearStockIfNotSafe(item); // 如果未启用安全库存,清零库存上下限
itemMapper.insert(item);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.ITEM.getValue(),
item.getId(), item.getCode(), item.getName());
return item.getId();
}
@@ -300,6 +308,9 @@ public class MesMdItemServiceImpl implements MesMdItemService {
item.setUnitMeasureId(unitMeasure.getId());
clearStockIfNotSafe(item);
itemMapper.insert(item);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.ITEM.getValue(),
item.getId(), item.getCode(), item.getName());
respVO.getCreateCodes().add(importItem.getCode());
} else if (updateSupport) {
// 2.3.2 更新

View File

@@ -12,6 +12,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorPage
import cn.iocoder.yudao.module.mes.controller.admin.md.vendor.vo.MesMdVendorSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
import cn.iocoder.yudao.module.mes.dal.mysql.md.vendor.MesMdVendorMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +41,9 @@ public class MesMdVendorServiceImpl implements MesMdVendorService {
@Resource
private MesMdVendorMapper vendorMapper;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createVendor(MesMdVendorSaveReqVO createReqVO) {
// 校验编码唯一
@@ -51,6 +56,10 @@ public class MesMdVendorServiceImpl implements MesMdVendorService {
// 插入
MesMdVendorDO vendor = BeanUtils.toBean(createReqVO, MesMdVendorDO.class);
vendorMapper.insert(vendor);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.VENDOR.getValue(),
vendor.getId(), vendor.getCode(), vendor.getName());
return vendor.getId();
}
@@ -182,6 +191,9 @@ public class MesMdVendorServiceImpl implements MesMdVendorService {
}
MesMdVendorDO vendor = BeanUtils.toBean(importVendor, MesMdVendorDO.class);
vendorMapper.insert(vendor);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.VENDOR.getValue(),
vendor.getId(), vendor.getCode(), vendor.getName());
respVO.getCreateCodes().add(importVendor.getCode());
} else if (updateSupport) {
// 2.2.2 更新

View File

@@ -10,6 +10,8 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO
import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;
import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkshopMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -38,6 +40,9 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService {
@Lazy
private MesMdWorkstationMapper workstationMapper;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createWorkshop(MesMdWorkshopSaveReqVO createReqVO) {
// 校验编码唯一
@@ -48,6 +53,10 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService {
// 插入
MesMdWorkshopDO workshop = BeanUtils.toBean(createReqVO, MesMdWorkshopDO.class);
workshopMapper.insert(workshop);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WORKSHOP.getValue(),
workshop.getId(), workshop.getCode(), workshop.getName());
return workshop.getId();
}

View File

@@ -14,6 +14,8 @@ import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMach
import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationToolMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationWorkerMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
@@ -62,6 +64,9 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
@Resource
private MesWmWarehouseAreaService areaService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createWorkstation(MesMdWorkstationSaveReqVO createReqVO) {
// 校验编码唯一
@@ -76,6 +81,10 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
// 插入
MesMdWorkstationDO workstation = BeanUtils.toBean(createReqVO, MesMdWorkstationDO.class);
workstationMapper.insert(workstation);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WORKSTATION.getValue(),
workstation.getId(), workstation.getCode(), workstation.getName());
return workstation.getId();
}

View File

@@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.pro.card.vo.MesProCardSaveRe
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.card.MesProCardDO;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.card.MesProCardMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.card.MesProCardProcessMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -35,6 +37,9 @@ public class MesProCardServiceImpl implements MesProCardService {
@Resource
private MesProWorkOrderService workOrderService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createCard(MesProCardSaveReqVO createReqVO) {
// 1.1 校验编码唯一
@@ -45,7 +50,10 @@ public class MesProCardServiceImpl implements MesProCardService {
// 2. 插入
MesProCardDO card = BeanUtils.toBean(createReqVO, MesProCardDO.class);
cardMapper.insert(card);
// TODO @芋艿条码生成barcode_url需等条码模块wm_barcode迁移后再对接
// 3. 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.PROCARD.getValue(),
card.getId(), card.getCode(), card.getCode());
return card.getId();
}

View File

@@ -14,9 +14,11 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderD
import cn.iocoder.yudao.module.mes.dal.mysql.pro.workorder.MesProWorkOrderBomMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.workorder.MesProWorkOrderMapper;
import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderStatusEnum;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemBatchConfigService;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdProductBomService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -43,6 +45,7 @@ public class MesProWorkOrderServiceImpl implements MesProWorkOrderService {
@Resource
private MesProWorkOrderMapper workOrderMapper;
// TODO @AI不应该直接这么调用调用对应的 service
@Resource
private MesProWorkOrderBomMapper workOrderBomMapper;
@@ -55,6 +58,9 @@ public class MesProWorkOrderServiceImpl implements MesProWorkOrderService {
@Resource
private MesMdItemBatchConfigService itemBatchConfigService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createWorkOrder(MesProWorkOrderSaveReqVO createReqVO) {
@@ -78,6 +84,10 @@ public class MesProWorkOrderServiceImpl implements MesProWorkOrderService {
// 3. 自动生成 BOM根据产品 BOM 生成工单 BOM
generateWorkOrderBom(workOrder.getId(), createReqVO.getProductId(), createReqVO.getQuantity());
// 4. 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WORKORDER.getValue(),
workOrder.getId(), workOrder.getCode(), workOrder.getName());
return workOrder.getId();
}

View File

@@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolSaveReqV
import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO;
import jakarta.validation.Valid;
import java.util.List;
/**
* MES 工具台账 Service 接口
*
@@ -51,4 +53,11 @@ public interface MesTmToolService {
*/
PageResult<MesTmToolDO> getToolPage(MesTmToolPageReqVO pageReqVO);
/**
* 获得工具精简列表
*
* @return 工具列表
*/
List<MesTmToolDO> getToolSimpleList();
}

View File

@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.service.tm.tool;
import cn.hutool.core.util.ObjUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolPageReqVO;
@@ -7,17 +8,19 @@ import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolSaveReqV
import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO;
import cn.iocoder.yudao.module.mes.dal.mysql.tm.tool.MesTmToolMapper;
import cn.iocoder.yudao.module.mes.enums.tm.MesTmMaintenTypeEnum;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import cn.hutool.core.util.ObjUtil;
import java.util.List;
import java.util.Objects;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.TM_TOOL_CODE_DUPLICATE;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.TM_TOOL_NOT_EXISTS;
/**
* MES 工具台账 Service 实现类
@@ -35,6 +38,9 @@ public class MesTmToolServiceImpl implements MesTmToolService {
@Lazy // 延迟加载,避免循环依赖
private MesTmToolTypeService toolTypeService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createTool(MesTmToolSaveReqVO createReqVO) {
// 校验工具类型存在
@@ -45,6 +51,10 @@ public class MesTmToolServiceImpl implements MesTmToolService {
// 插入
MesTmToolDO tool = BeanUtils.toBean(createReqVO, MesTmToolDO.class);
toolMapper.insert(tool);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.TOOL.getValue(),
tool.getId(), tool.getCode(), tool.getName());
return tool.getId();
}
@@ -104,4 +114,9 @@ public class MesTmToolServiceImpl implements MesTmToolService {
return toolMapper.selectPage(pageReqVO);
}
@Override
public List<MesTmToolDO> getToolSimpleList() {
return toolMapper.selectList();
}
}

View File

@@ -43,6 +43,7 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService {
}
// 2.1 生成条码内容(根据配置模板)
// TODO @AIMesWmBarcodeSaveReqVO 增加一个 content 字段;如果为空,才进行生成;
String content = generateBarcodeContent(config.getContentFormat(), createReqVO.getBizCode());
// 2.2 校验条码内容唯一性
MesWmBarcodeDO contentBarcode = barcodeMapper.selectByContent(content);
@@ -57,11 +58,29 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService {
return barcode.getId();
}
// TODO @AI后端提供一个接口用于 generateBarcodeContent 的生成;前端需要调用这个接口;
/**
* 生成条码内容
*
* @param contentFormat 内容格式模板
* @param bizCode 业务编码
* @return 条码内容
*/
private String generateBarcodeContent(String contentFormat, String bizCode) {
if (StrUtil.isBlank(contentFormat)) {
return bizCode;
}
return contentFormat.replace(MesWmBarcodeConfigDO.PLACEHOLDER_BUSINESS_CODE, bizCode);
}
@Override
public void updateBarcode(MesWmBarcodeSaveReqVO updateReqVO) {
// 校验存在
validateBarcodeExists(updateReqVO.getId());
// TODO @AIcontent 可以更新;更新需要校验唯一;
// 更新
MesWmBarcodeDO updateObj = BeanUtils.toBean(updateReqVO, MesWmBarcodeDO.class);
barcodeMapper.updateById(updateObj);
@@ -119,18 +138,4 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService {
createBarcode(createReqVO);
}
/**
* 生成条码内容
*
* @param contentFormat 内容格式模板
* @param bizCode 业务编码
* @return 条码内容
*/
private String generateBarcodeContent(String contentFormat, String bizCode) {
if (StrUtil.isBlank(contentFormat)) {
return bizCode;
}
return contentFormat.replace(MesWmBarcodeConfigDO.PLACEHOLDER_BUSINESS_CODE, bizCode);
}
}

View File

@@ -9,7 +9,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWa
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
@@ -41,6 +43,8 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
@Resource
@Lazy
private MesWmWarehouseLocationService locationService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createWarehouseArea(MesWmWarehouseAreaSaveReqVO createReqVO) {
@@ -51,8 +55,13 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
// 校验名称唯一
validateWarehouseAreaNameUnique(null, createReqVO.getLocationId(), createReqVO.getName());
// 插入
MesWmWarehouseAreaDO area = BeanUtils.toBean(createReqVO, MesWmWarehouseAreaDO.class);
areaMapper.insert(area);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.AREA.getValue(),
area.getId(), area.getCode(), area.getName());
return area.getId();
}
@@ -67,6 +76,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
// 校验名称唯一
validateWarehouseAreaNameUnique(updateReqVO.getId(), updateReqVO.getLocationId(), updateReqVO.getName());
// 更新
MesWmWarehouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseAreaDO.class);
areaMapper.updateById(updateObj);
}
@@ -84,6 +94,7 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
throw exception(WM_WAREHOUSE_AREA_HAS_MATERIAL_STOCK);
}
// 删除
areaMapper.deleteById(id);
}

View File

@@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.Mes
import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
@@ -42,6 +44,8 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
@Resource
@Lazy
private MesWmWarehouseService warehouseService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createWarehouseLocation(MesWmWarehouseLocationSaveReqVO createReqVO) {
@@ -52,8 +56,13 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
// 校验名称唯一
validateWarehouseLocationNameUnique(null, createReqVO.getWarehouseId(), createReqVO.getName());
// 插入
MesWmWarehouseLocationDO location = BeanUtils.toBean(createReqVO, MesWmWarehouseLocationDO.class);
locationMapper.insert(location);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.LOCATION.getValue(),
location.getId(), location.getCode(), location.getName());
return location.getId();
}
@@ -68,6 +77,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
// 校验名称唯一
validateWarehouseLocationNameUnique(updateReqVO.getId(), updateReqVO.getWarehouseId(), updateReqVO.getName());
// 更新
MesWmWarehouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, MesWmWarehouseLocationDO.class);
locationMapper.updateById(updateObj);
}
@@ -89,6 +99,7 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
throw exception(WM_WAREHOUSE_LOCATION_HAS_MATERIAL_STOCK);
}
// 删除
locationMapper.deleteById(id);
}

View File

@@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehou
import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseMapper;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
@@ -39,6 +41,8 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService {
private MesMdWorkstationService workstationService;
@Resource
private MesWmMaterialStockService materialStockService;
@Resource
private MesWmBarcodeService barcodeService;
@Override
public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) {
@@ -50,6 +54,10 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService {
// 插入
MesWmWarehouseDO warehouse = BeanUtils.toBean(createReqVO, MesWmWarehouseDO.class);
warehouseMapper.insert(warehouse);
// 自动生成条码
barcodeService.autoGenerateBarcode(BarcodeBizTypeEnum.WAREHOUSE.getValue(),
warehouse.getId(), warehouse.getCode(), warehouse.getName());
return warehouse.getId();
}