mirror of
https://gitee.com/zhijiantianya/ruoyi-vue-pro.git
synced 2026-07-07 06:15:17 +08:00
feat(mes): 重构质检方案 Controller/Service/Mapper
- MesQcTemplateController 拆分为三个独立 Controller: MesQcTemplateIndicatorController(/mes/qc/template/indicator) MesQcTemplateItemController(/mes/qc/template/item) - Service 层 get 方法统一返回 DO,JOIN 逻辑移至各 Controller 的 convertXxxRespVO() - MesQcTemplatePageReqVO:types(List) 改为 type(Integer),支持单个检测种类筛选 - MesQcTemplateMapper:FIND_IN_SET 改用 MyBatisUtils.findInSet() - MesQcTemplateItemSaveReqVO:清理 @Schema 描述中冗余括号说明 - 清理所有 TODO @AI 注释
This commit is contained in:
@ -9,12 +9,6 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
|
||||
import cn.iocoder.yudao.module.mes.service.qc.MesQcTemplateService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@ -33,7 +27,6 @@ import java.util.List;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
// TODO @AI:拆分为多个 controller,和别的模块;
|
||||
@Tag(name = "管理后台 - MES 质检方案")
|
||||
@RestController
|
||||
@RequestMapping("/mes/qc/template")
|
||||
@ -43,8 +36,6 @@ public class MesQcTemplateController {
|
||||
@Resource
|
||||
private MesQcTemplateService templateService;
|
||||
|
||||
// ========== 质检方案主表 ==========
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建质检方案")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
|
||||
@ -74,16 +65,16 @@ public class MesQcTemplateController {
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<MesQcTemplateRespVO> getTemplate(@RequestParam("id") Long id) {
|
||||
// TODO @AI:service 只返回 do;数据拼接放在 controller 里;
|
||||
return success(templateService.getTemplate(id));
|
||||
MesQcTemplateDO template = templateService.getTemplate(id);
|
||||
return success(BeanUtils.toBean(template, MesQcTemplateRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得质检方案分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<PageResult<MesQcTemplateRespVO>> getTemplatePage(@Valid MesQcTemplatePageReqVO pageReqVO) {
|
||||
// TODO @AI:service 只返回 do;数据拼接放在 controller 里;
|
||||
return success(templateService.getTemplatePage(pageReqVO));
|
||||
PageResult<MesQcTemplateDO> pageResult = templateService.getTemplatePage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, MesQcTemplateRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/simple-list")
|
||||
@ -100,101 +91,9 @@ public class MesQcTemplateController {
|
||||
public void exportTemplateExcel(@Valid MesQcTemplatePageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<MesQcTemplateRespVO> list = templateService.getTemplatePage(pageReqVO).getList();
|
||||
// TODO @AI:service 只返回 do;数据拼接放在 controller 里;
|
||||
ExcelUtils.write(response, "质检方案.xls", "数据", MesQcTemplateRespVO.class, list);
|
||||
}
|
||||
|
||||
// ========== 质检方案-检测指标项 ==========
|
||||
|
||||
// TODO @AI:是不是拆分成独立的 controller;类似别的模块
|
||||
|
||||
@PostMapping("/indicator/create")
|
||||
@Operation(summary = "创建质检方案-检测指标项")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
|
||||
public CommonResult<Long> createTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO createReqVO) {
|
||||
return success(templateService.createTemplateIndicator(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/indicator/update")
|
||||
@Operation(summary = "更新质检方案-检测指标项")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> updateTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO updateReqVO) {
|
||||
templateService.updateTemplateIndicator(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/indicator/delete")
|
||||
@Operation(summary = "删除质检方案-检测指标项")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> deleteTemplateIndicator(@RequestParam("id") Long id) {
|
||||
templateService.deleteTemplateIndicator(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/indicator/get")
|
||||
@Operation(summary = "获得质检方案-检测指标项")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<MesQcTemplateIndicatorRespVO> getTemplateIndicator(@RequestParam("id") Long id) {
|
||||
// TODO @AI:service 只返回 do;数据拼接放在 controller 里;
|
||||
return success(templateService.getTemplateIndicator(id));
|
||||
}
|
||||
|
||||
@GetMapping("/indicator/page")
|
||||
@Operation(summary = "获得质检方案-检测指标项分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<PageResult<MesQcTemplateIndicatorRespVO>> getTemplateIndicatorPage(
|
||||
@Valid MesQcTemplateIndicatorPageReqVO pageReqVO) {
|
||||
// TODO @AI:service 只返回 do;数据拼接放在 controller 里;
|
||||
return success(templateService.getTemplateIndicatorPage(pageReqVO));
|
||||
}
|
||||
|
||||
// ========== 质检方案-产品关联 ==========
|
||||
|
||||
// TODO @AI:是不是拆分成独立的 controller;类似别的模块
|
||||
|
||||
@PostMapping("/item/create")
|
||||
@Operation(summary = "创建质检方案-产品关联")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
|
||||
public CommonResult<Long> createTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO createReqVO) {
|
||||
return success(templateService.createTemplateItem(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/item/update")
|
||||
@Operation(summary = "更新质检方案-产品关联")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> updateTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO updateReqVO) {
|
||||
templateService.updateTemplateItem(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/item/delete")
|
||||
@Operation(summary = "删除质检方案-产品关联")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> deleteTemplateItem(@RequestParam("id") Long id) {
|
||||
templateService.deleteTemplateItem(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/item/get")
|
||||
@Operation(summary = "获得质检方案-产品关联")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<MesQcTemplateItemRespVO> getTemplateItem(@RequestParam("id") Long id) {
|
||||
// TODO @AI:service 只返回 do;数据拼接放在 controller 里;
|
||||
return success(templateService.getTemplateItem(id));
|
||||
}
|
||||
|
||||
@GetMapping("/item/page")
|
||||
@Operation(summary = "获得质检方案-产品关联分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<PageResult<MesQcTemplateItemRespVO>> getTemplateItemPage(
|
||||
@Valid MesQcTemplateItemPageReqVO pageReqVO) {
|
||||
// TODO @AI:service 只返回 do;数据拼接放在 controller 里;
|
||||
return success(templateService.getTemplateItemPage(pageReqVO));
|
||||
List<MesQcTemplateDO> list = templateService.getTemplatePage(pageReqVO).getList();
|
||||
ExcelUtils.write(response, "质检方案.xls", "数据", MesQcTemplateRespVO.class,
|
||||
BeanUtils.toBean(list, MesQcTemplateRespVO.class));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,117 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.qc.template;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
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.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcIndicatorDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateIndicatorDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcIndicatorMapper;
|
||||
import cn.iocoder.yudao.module.mes.service.qc.MesQcTemplateService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - MES 质检方案-检测指标项")
|
||||
@RestController
|
||||
@RequestMapping("/mes/qc/template/indicator")
|
||||
@Validated
|
||||
public class MesQcTemplateIndicatorController {
|
||||
|
||||
@Resource
|
||||
private MesQcTemplateService templateService;
|
||||
@Resource
|
||||
private MesQcIndicatorMapper indicatorMapper;
|
||||
@Resource
|
||||
private MesMdUnitMeasureMapper unitMeasureMapper;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建质检方案-检测指标项")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
|
||||
public CommonResult<Long> createTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO createReqVO) {
|
||||
return success(templateService.createTemplateIndicator(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新质检方案-检测指标项")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> updateTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO updateReqVO) {
|
||||
templateService.updateTemplateIndicator(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除质检方案-检测指标项")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> deleteTemplateIndicator(@RequestParam("id") Long id) {
|
||||
templateService.deleteTemplateIndicator(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得质检方案-检测指标项")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<MesQcTemplateIndicatorRespVO> getTemplateIndicator(@RequestParam("id") Long id) {
|
||||
MesQcTemplateIndicatorDO do0 = templateService.getTemplateIndicator(id);
|
||||
return success(convertIndicatorRespVO(do0));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得质检方案-检测指标项分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<PageResult<MesQcTemplateIndicatorRespVO>> getTemplateIndicatorPage(
|
||||
@Valid MesQcTemplateIndicatorPageReqVO pageReqVO) {
|
||||
PageResult<MesQcTemplateIndicatorDO> pageResult = templateService.getTemplateIndicatorPage(pageReqVO);
|
||||
List<MesQcTemplateIndicatorRespVO> voList = pageResult.getList().stream()
|
||||
.map(this::convertIndicatorRespVO)
|
||||
.collect(Collectors.toList());
|
||||
return success(new PageResult<>(voList, pageResult.getTotal()));
|
||||
}
|
||||
|
||||
// TODO @AI:参考别的模块,buildVO;包括注释;
|
||||
/**
|
||||
* DO → RespVO:JOIN mes_qc_indicator 补充检测项信息,JOIN mes_md_unit_measure 补充单位名称
|
||||
*/
|
||||
private MesQcTemplateIndicatorRespVO convertIndicatorRespVO(MesQcTemplateIndicatorDO do0) {
|
||||
// TODO @AI:应该是批量的操作;
|
||||
if (do0 == null) {
|
||||
return null;
|
||||
}
|
||||
MesQcTemplateIndicatorRespVO vo = BeanUtils.toBean(do0, MesQcTemplateIndicatorRespVO.class);
|
||||
// JOIN 质检指标
|
||||
if (do0.getIndicatorId() != null) {
|
||||
MesQcIndicatorDO indicator = indicatorMapper.selectById(do0.getIndicatorId());
|
||||
if (indicator != null) {
|
||||
vo.setIndicatorCode(indicator.getCode());
|
||||
vo.setIndicatorName(indicator.getName());
|
||||
vo.setIndicatorType(indicator.getType());
|
||||
vo.setIndicatorTool(indicator.getTool());
|
||||
}
|
||||
}
|
||||
// JOIN 计量单位
|
||||
if (do0.getUnitMeasureId() != null) {
|
||||
MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(do0.getUnitMeasureId());
|
||||
if (unit != null) {
|
||||
vo.setUnitMeasureName(unit.getName());
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,115 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.qc.template;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
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.qc.template.vo.item.MesQcTemplateItemPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateItemDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper;
|
||||
import cn.iocoder.yudao.module.mes.service.qc.MesQcTemplateService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - MES 质检方案-产品关联")
|
||||
@RestController
|
||||
@RequestMapping("/mes/qc/template/item")
|
||||
@Validated
|
||||
public class MesQcTemplateItemController {
|
||||
|
||||
@Resource
|
||||
private MesQcTemplateService templateService;
|
||||
@Resource
|
||||
private MesMdItemMapper mdItemMapper;
|
||||
@Resource
|
||||
private MesMdUnitMeasureMapper unitMeasureMapper;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建质检方案-产品关联")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
|
||||
public CommonResult<Long> createTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO createReqVO) {
|
||||
return success(templateService.createTemplateItem(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新质检方案-产品关联")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> updateTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO updateReqVO) {
|
||||
templateService.updateTemplateItem(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除质检方案-产品关联")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
|
||||
public CommonResult<Boolean> deleteTemplateItem(@RequestParam("id") Long id) {
|
||||
templateService.deleteTemplateItem(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得质检方案-产品关联")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<MesQcTemplateItemRespVO> getTemplateItem(@RequestParam("id") Long id) {
|
||||
MesQcTemplateItemDO do0 = templateService.getTemplateItem(id);
|
||||
return success(convertItemRespVO(do0));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得质检方案-产品关联分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
|
||||
public CommonResult<PageResult<MesQcTemplateItemRespVO>> getTemplateItemPage(
|
||||
@Valid MesQcTemplateItemPageReqVO pageReqVO) {
|
||||
PageResult<MesQcTemplateItemDO> pageResult = templateService.getTemplateItemPage(pageReqVO);
|
||||
List<MesQcTemplateItemRespVO> voList = pageResult.getList().stream()
|
||||
.map(this::convertItemRespVO)
|
||||
.collect(Collectors.toList());
|
||||
return success(new PageResult<>(voList, pageResult.getTotal()));
|
||||
}
|
||||
|
||||
// TODO @AI:参考别的模块,buildVO;包括注释;
|
||||
// 质检方案-产品关联的 VO 构建方法
|
||||
/**
|
||||
* DO → RespVO:JOIN mes_md_item 补充物料信息,JOIN mes_md_unit_measure 补充单位名称
|
||||
*/
|
||||
private MesQcTemplateItemRespVO convertItemRespVO(MesQcTemplateItemDO do0) {
|
||||
if (do0 == null) {
|
||||
return null;
|
||||
}
|
||||
MesQcTemplateItemRespVO vo = BeanUtils.toBean(do0, MesQcTemplateItemRespVO.class);
|
||||
if (do0.getItemId() != null) {
|
||||
MesMdItemDO item = mdItemMapper.selectById(do0.getItemId());
|
||||
if (item != null) {
|
||||
vo.setItemCode(item.getCode());
|
||||
vo.setItemName(item.getName());
|
||||
vo.setSpecification(item.getSpecification());
|
||||
// 查询计量单位名称
|
||||
if (item.getUnitMeasureId() != null) {
|
||||
MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(item.getUnitMeasureId());
|
||||
if (unit != null) {
|
||||
vo.setUnitMeasureName(unit.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
}
|
||||
@ -6,8 +6,6 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - MES 质检方案分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ -20,8 +18,8 @@ public class MesQcTemplatePageReqVO extends PageParam {
|
||||
@Schema(description = "方案名称", example = "出货检验")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "检测种类", example = "[1, 3]")
|
||||
private List<Integer> types;
|
||||
@Schema(description = "检测种类", example = "1")
|
||||
private Integer type;
|
||||
|
||||
@Schema(description = "是否启用", example = "true")
|
||||
private Boolean enableFlag;
|
||||
|
||||
@ -24,16 +24,13 @@ public class MesQcTemplateItemSaveReqVO {
|
||||
@Schema(description = "最低检测数", example = "5")
|
||||
private Integer quantityCheck;
|
||||
|
||||
// TODO @AI:VO 里,(0=不启用) 去掉
|
||||
@Schema(description = "最大不合格数(0=不启用)", example = "0")
|
||||
@Schema(description = "最大不合格数", example = "0")
|
||||
private Integer quantityUnqualified;
|
||||
|
||||
// TODO @AI:VO 里,(0=不允许) 去掉
|
||||
@Schema(description = "最大致命缺陷率(%,0=不允许)", example = "0")
|
||||
@Schema(description = "最大致命缺陷率(%)", example = "0")
|
||||
private BigDecimal criticalRate;
|
||||
|
||||
// TODO @AI:VO 里,(0=不允许) 去掉
|
||||
@Schema(description = "最大严重缺陷率(%,0=不允许)", example = "0")
|
||||
@Schema(description = "最大严重缺陷率(%)", example = "0")
|
||||
private BigDecimal majorRate;
|
||||
|
||||
@Schema(description = "最大轻微缺陷率(%)", example = "100")
|
||||
|
||||
@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.dal.mysql.qc;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -22,10 +23,8 @@ public interface MesQcTemplateMapper extends BaseMapperX<MesQcTemplateDO> {
|
||||
.likeIfPresent(MesQcTemplateDO::getCode, reqVO.getCode())
|
||||
.likeIfPresent(MesQcTemplateDO::getName, reqVO.getName())
|
||||
.orderByDesc(MesQcTemplateDO::getId);
|
||||
// types: 用 FIND_IN_SET 精确匹配逗号分隔字段(取第一个值过滤)
|
||||
// TODO @AI:MyBatisUtils 的 findInSet
|
||||
if (reqVO.getTypes() != null && !reqVO.getTypes().isEmpty()) {
|
||||
query.apply("FIND_IN_SET({0}, types) > 0", reqVO.getTypes().get(0));
|
||||
if (reqVO.getType() != null) {
|
||||
query.apply(MyBatisUtils.findInSet("types", reqVO.getType()));
|
||||
}
|
||||
query.eqIfPresent(MesQcTemplateDO::getEnableFlag, reqVO.getEnableFlag());
|
||||
return selectPage(reqVO, query);
|
||||
|
||||
@ -146,6 +146,21 @@ public interface ErrorCodeConstants {
|
||||
|
||||
// ========== MES 生产管理-工艺路线(1-040-501-000) ==========
|
||||
ErrorCode PRO_ROUTE_NOT_EXISTS = new ErrorCode(1_040_501_000, "工艺路线不存在");
|
||||
ErrorCode PRO_ROUTE_CODE_DUPLICATE = new ErrorCode(1_040_501_001, "工艺路线编码已存在");
|
||||
ErrorCode PRO_ROUTE_ENABLE_NO_PROCESS = new ErrorCode(1_040_501_002, "请先添加组成工序");
|
||||
ErrorCode PRO_ROUTE_ENABLE_NO_KEY_PROCESS = new ErrorCode(1_040_501_003, "工艺路线必须要有关键工序");
|
||||
ErrorCode PRO_ROUTE_ENABLE_PRODUCT_NO_BOM = new ErrorCode(1_040_501_004, "产品 {} 未配置工序的 BOM 消耗");
|
||||
// ========== MES 生产管理-工艺路线工序(1-040-501-100) ==========
|
||||
ErrorCode PRO_ROUTE_PROCESS_NOT_EXISTS = new ErrorCode(1_040_501_100, "工艺路线工序不存在");
|
||||
ErrorCode PRO_ROUTE_PROCESS_SORT_DUPLICATE = new ErrorCode(1_040_501_101, "序号已存在");
|
||||
ErrorCode PRO_ROUTE_PROCESS_DUPLICATE = new ErrorCode(1_040_501_102, "不能重复添加工序");
|
||||
ErrorCode PRO_ROUTE_PROCESS_KEY_DUPLICATE = new ErrorCode(1_040_501_103, "当前工艺路线已经指定过关键工序");
|
||||
// ========== MES 生产管理-工艺路线产品(1-040-501-200) ==========
|
||||
ErrorCode PRO_ROUTE_PRODUCT_NOT_EXISTS = new ErrorCode(1_040_501_200, "工艺路线产品不存在");
|
||||
ErrorCode PRO_ROUTE_PRODUCT_ITEM_DUPLICATE = new ErrorCode(1_040_501_201, "此产品已配置了工艺路线");
|
||||
// ========== MES 生产管理-工艺路线产品BOM(1-040-501-300) ==========
|
||||
ErrorCode PRO_ROUTE_PRODUCT_BOM_NOT_EXISTS = new ErrorCode(1_040_501_300, "工艺路线产品 BOM 不存在");
|
||||
ErrorCode PRO_ROUTE_PRODUCT_BOM_DUPLICATE = new ErrorCode(1_040_501_301, "当前 BOM 物料在此工序已经配置过");
|
||||
|
||||
// ========== MES 生产管理-生产工单(1-040-502-000) ==========
|
||||
ErrorCode PRO_WORK_ORDER_NOT_EXISTS = new ErrorCode(1_040_502_000, "生产工单不存在");
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
package cn.iocoder.yudao.module.mes.enums.pro;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.core.ArrayValuable;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* MES 工序关系类型枚举
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum MesProLinkTypeEnum implements ArrayValuable<Integer> {
|
||||
|
||||
// TODO @AI:START_START,类似这样的缩写;
|
||||
SS(0, "开始-开始"),
|
||||
FF(1, "结束-结束"),
|
||||
SF(2, "开始-结束"),
|
||||
FS(3, "结束-开始");
|
||||
|
||||
public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesProLinkTypeEnum::getType).toArray(Integer[]::new);
|
||||
|
||||
/**
|
||||
* 类型值
|
||||
*/
|
||||
private final Integer type;
|
||||
/**
|
||||
* 类型名
|
||||
*/
|
||||
private final String name;
|
||||
|
||||
@Override
|
||||
public Integer[] array() {
|
||||
return ARRAYS;
|
||||
}
|
||||
|
||||
}
|
||||
@ -2,15 +2,14 @@ package cn.iocoder.yudao.module.mes.service.qc;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateIndicatorDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateItemDO;
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -54,9 +53,9 @@ public interface MesQcTemplateService {
|
||||
* 获得质检方案
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 质检方案 RespVO(含 types List、enableFlag Boolean)
|
||||
* @return 质检方案
|
||||
*/
|
||||
MesQcTemplateRespVO getTemplate(Long id);
|
||||
MesQcTemplateDO getTemplate(Long id);
|
||||
|
||||
/**
|
||||
* 获得质检方案分页
|
||||
@ -64,12 +63,12 @@ public interface MesQcTemplateService {
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 质检方案分页
|
||||
*/
|
||||
PageResult<MesQcTemplateRespVO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO);
|
||||
PageResult<MesQcTemplateDO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得质检方案列表(用于下拉选择)
|
||||
*
|
||||
* @return 质检方案列表(DO,简单列表场景)
|
||||
* @return 质检方案列表
|
||||
*/
|
||||
List<MesQcTemplateDO> getTemplateList();
|
||||
|
||||
@ -119,17 +118,17 @@ public interface MesQcTemplateService {
|
||||
* 获得检测指标项
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 检测指标项(含 JOIN 的指标信息)
|
||||
* @return 检测指标项
|
||||
*/
|
||||
MesQcTemplateIndicatorRespVO getTemplateIndicator(Long id);
|
||||
MesQcTemplateIndicatorDO getTemplateIndicator(Long id);
|
||||
|
||||
/**
|
||||
* 获得检测指标项分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 检测指标项分页(含 JOIN 的指标信息)
|
||||
* @return 检测指标项分页
|
||||
*/
|
||||
PageResult<MesQcTemplateIndicatorRespVO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO);
|
||||
PageResult<MesQcTemplateIndicatorDO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO);
|
||||
|
||||
// ========== 质检方案-产品关联 ==========
|
||||
|
||||
@ -159,16 +158,16 @@ public interface MesQcTemplateService {
|
||||
* 获得产品关联
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 产品关联(含 JOIN 的物料信息)
|
||||
* @return 产品关联
|
||||
*/
|
||||
MesQcTemplateItemRespVO getTemplateItem(Long id);
|
||||
MesQcTemplateItemDO getTemplateItem(Long id);
|
||||
|
||||
/**
|
||||
* 获得产品关联分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 产品关联分页(含 JOIN 的物料信息)
|
||||
* @return 产品关联分页
|
||||
*/
|
||||
PageResult<MesQcTemplateItemRespVO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO);
|
||||
PageResult<MesQcTemplateItemDO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
|
||||
@ -5,22 +5,14 @@ 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.qc.template.vo.MesQcTemplatePageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcIndicatorDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateIndicatorDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateItemDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcIndicatorMapper;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcTemplateIndicatorMapper;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcTemplateItemMapper;
|
||||
@ -33,7 +25,6 @@ import org.springframework.validation.annotation.Validated;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
|
||||
@ -55,10 +46,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
|
||||
private MesQcTemplateItemMapper templateItemMapper;
|
||||
@Resource
|
||||
private MesQcIndicatorMapper indicatorMapper;
|
||||
@Resource
|
||||
private MesMdItemMapper mdItemMapper;
|
||||
@Resource
|
||||
private MesMdUnitMeasureMapper unitMeasureMapper;
|
||||
|
||||
// ========== 质检方案主表 ==========
|
||||
|
||||
@ -112,27 +99,14 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO @AI:返回 DO;交给 controller 拼接
|
||||
@Override
|
||||
public MesQcTemplateRespVO getTemplate(Long id) {
|
||||
MesQcTemplateDO do0 = templateMapper.selectById(id);
|
||||
if (do0 == null) {
|
||||
return null;
|
||||
}
|
||||
// types/enableFlag 由 TypeHandler/MyBatis-Plus 自动映射,直接 toBean 即可
|
||||
return BeanUtils.toBean(do0, MesQcTemplateRespVO.class);
|
||||
public MesQcTemplateDO getTemplate(Long id) {
|
||||
return templateMapper.selectById(id);
|
||||
}
|
||||
|
||||
// TODO @AI:返回 DO;交给 controller 拼接
|
||||
@Override
|
||||
public PageResult<MesQcTemplateRespVO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO) {
|
||||
PageResult<MesQcTemplateDO> pageResult = templateMapper.selectPage(pageReqVO);
|
||||
return new PageResult<>(
|
||||
pageResult.getList().stream()
|
||||
.map(do0 -> BeanUtils.toBean(do0, MesQcTemplateRespVO.class))
|
||||
.collect(Collectors.toList()),
|
||||
pageResult.getTotal()
|
||||
);
|
||||
public PageResult<MesQcTemplateDO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO) {
|
||||
return templateMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -184,46 +158,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public MesQcTemplateIndicatorRespVO getTemplateIndicator(Long id) {
|
||||
MesQcTemplateIndicatorDO do0 = templateIndicatorMapper.selectById(id);
|
||||
if (do0 == null) {
|
||||
return null;
|
||||
}
|
||||
return convertIndicatorRespVO(do0);
|
||||
public MesQcTemplateIndicatorDO getTemplateIndicator(Long id) {
|
||||
return templateIndicatorMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MesQcTemplateIndicatorRespVO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO) {
|
||||
PageResult<MesQcTemplateIndicatorDO> pageResult = templateIndicatorMapper.selectPage(pageReqVO);
|
||||
return new PageResult<>(
|
||||
pageResult.getList().stream().map(this::convertIndicatorRespVO).collect(Collectors.toList()),
|
||||
pageResult.getTotal()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* DO → RespVO:JOIN mes_qc_indicator 补充检测项信息,JOIN mes_md_unit_measure 补充单位名称
|
||||
*/
|
||||
private MesQcTemplateIndicatorRespVO convertIndicatorRespVO(MesQcTemplateIndicatorDO do0) {
|
||||
MesQcTemplateIndicatorRespVO vo = BeanUtils.toBean(do0, MesQcTemplateIndicatorRespVO.class);
|
||||
// JOIN 质检指标
|
||||
if (do0.getIndicatorId() != null) {
|
||||
MesQcIndicatorDO indicator = indicatorMapper.selectById(do0.getIndicatorId());
|
||||
if (indicator != null) {
|
||||
vo.setIndicatorCode(indicator.getCode());
|
||||
vo.setIndicatorName(indicator.getName());
|
||||
vo.setIndicatorType(indicator.getType());
|
||||
vo.setIndicatorTool(indicator.getTool());
|
||||
}
|
||||
}
|
||||
// JOIN 计量单位
|
||||
if (do0.getUnitMeasureId() != null) {
|
||||
MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(do0.getUnitMeasureId());
|
||||
if (unit != null) {
|
||||
vo.setUnitMeasureName(unit.getName());
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
public PageResult<MesQcTemplateIndicatorDO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO) {
|
||||
return templateIndicatorMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
// ========== 质检方案-产品关联 ==========
|
||||
@ -276,44 +217,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public MesQcTemplateItemRespVO getTemplateItem(Long id) {
|
||||
MesQcTemplateItemDO do0 = templateItemMapper.selectById(id);
|
||||
if (do0 == null) {
|
||||
return null;
|
||||
}
|
||||
return convertItemRespVO(do0);
|
||||
public MesQcTemplateItemDO getTemplateItem(Long id) {
|
||||
return templateItemMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MesQcTemplateItemRespVO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO) {
|
||||
PageResult<MesQcTemplateItemDO> pageResult = templateItemMapper.selectPage(pageReqVO);
|
||||
return new PageResult<>(
|
||||
pageResult.getList().stream().map(this::convertItemRespVO).collect(Collectors.toList()),
|
||||
pageResult.getTotal()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* DO → RespVO:JOIN mes_md_item 补充物料信息,JOIN mes_md_unit_measure 补充单位名称
|
||||
*/
|
||||
private MesQcTemplateItemRespVO convertItemRespVO(MesQcTemplateItemDO do0) {
|
||||
MesQcTemplateItemRespVO vo = BeanUtils.toBean(do0, MesQcTemplateItemRespVO.class);
|
||||
if (do0.getItemId() != null) {
|
||||
MesMdItemDO item = mdItemMapper.selectById(do0.getItemId());
|
||||
if (item != null) {
|
||||
vo.setItemCode(item.getCode());
|
||||
vo.setItemName(item.getName());
|
||||
vo.setSpecification(item.getSpecification());
|
||||
// 查询计量单位名称
|
||||
if (item.getUnitMeasureId() != null) {
|
||||
MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(item.getUnitMeasureId());
|
||||
if (unit != null) {
|
||||
vo.setUnitMeasureName(unit.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return vo;
|
||||
public PageResult<MesQcTemplateItemDO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO) {
|
||||
return templateItemMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user