mirror of
https://gitee.com/zhijiantianya/ruoyi-vue-pro.git
synced 2026-03-22 05:07:17 +08:00
✨ feat(mes): 添加工具精简列表接口及条码自动生成逻辑
新增工具精简列表接口,支持获取工具的简化信息。同时,在创建工具、客户、设备等时,自动生成对应的条码,提升条码管理的效率。
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
@@ -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, "人员");
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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 更新
|
||||
|
||||
@@ -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 更新
|
||||
|
||||
@@ -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 更新
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ public class MesWmBarcodeServiceImpl implements MesWmBarcodeService {
|
||||
}
|
||||
|
||||
// 2.1 生成条码内容(根据配置模板)
|
||||
// TODO @AI:MesWmBarcodeSaveReqVO 增加一个 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 @AI:content 可以更新;更新需要校验唯一;
|
||||
|
||||
// 更新
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user