Merge remote-tracking branch 'origin/master'

master
Yangwl 2 months ago
commit c5703689a4

@ -0,0 +1,117 @@
package org.dromara.qms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.qms.domain.vo.QcInspectionItemCategoryVo;
import org.dromara.qms.domain.bo.QcInspectionItemCategoryBo;
import org.dromara.qms.service.IQcInspectionItemCategoryService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/qms/qcInspectionItemCategory
*
* @author zch
* @date 2025-07-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/qcInspectionItemCategory")
public class QcInspectionItemCategoryController extends BaseController {
private final IQcInspectionItemCategoryService qcInspectionItemCategoryService;
/**
*
*/
@SaCheckPermission("qms:qcInspectionItemCategory:list")
@GetMapping("/list")
public TableDataInfo<QcInspectionItemCategoryVo> list(QcInspectionItemCategoryBo bo, PageQuery pageQuery) {
return qcInspectionItemCategoryService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionItemCategory:export")
@Log(title = "检测项类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QcInspectionItemCategoryBo bo, HttpServletResponse response) {
List<QcInspectionItemCategoryVo> list = qcInspectionItemCategoryService.queryList(bo);
ExcelUtil.exportExcel(list, "检测项类别", QcInspectionItemCategoryVo.class, response);
}
/**
*
*
* @param categoryId
*/
@SaCheckPermission("qms:qcInspectionItemCategory:query")
@GetMapping("/{categoryId}")
public R<QcInspectionItemCategoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long categoryId) {
return R.ok(qcInspectionItemCategoryService.queryById(categoryId));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionItemCategory:add")
@Log(title = "检测项类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionItemCategoryBo bo) {
return toAjax(qcInspectionItemCategoryService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionItemCategory:edit")
@Log(title = "检测项类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionItemCategoryBo bo) {
return toAjax(qcInspectionItemCategoryService.updateByBo(bo));
}
/**
*
*
* @param categoryIds
*/
@SaCheckPermission("qms:qcInspectionItemCategory:remove")
@Log(title = "检测项类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{categoryIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] categoryIds) {
return toAjax(qcInspectionItemCategoryService.deleteWithValidByIds(List.of(categoryIds), true));
}
/**
*
*/
@GetMapping("/getQcInspectionItemCategoryList")
public R<List<QcInspectionItemCategoryVo>> getQcInspectionItemCategoryList(QcInspectionItemCategoryBo bo) {
List<QcInspectionItemCategoryVo> list = qcInspectionItemCategoryService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.qms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.qms.domain.vo.QcInspectionItemVo;
import org.dromara.qms.domain.bo.QcInspectionItemBo;
import org.dromara.qms.service.IQcInspectionItemService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/qms/qcInspectionItem
*
* @author zch
* @date 2025-07-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/qcInspectionItem")
public class QcInspectionItemController extends BaseController {
private final IQcInspectionItemService qcInspectionItemService;
/**
*
*/
@SaCheckPermission("qms:qcInspectionItem:list")
@GetMapping("/list")
public TableDataInfo<QcInspectionItemVo> list(QcInspectionItemBo bo, PageQuery pageQuery) {
return qcInspectionItemService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionItem:export")
@Log(title = "检测项定义", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QcInspectionItemBo bo, HttpServletResponse response) {
List<QcInspectionItemVo> list = qcInspectionItemService.queryList(bo);
ExcelUtil.exportExcel(list, "检测项定义", QcInspectionItemVo.class, response);
}
/**
*
*
* @param itemId
*/
@SaCheckPermission("qms:qcInspectionItem:query")
@GetMapping("/{itemId}")
public R<QcInspectionItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long itemId) {
return R.ok(qcInspectionItemService.queryById(itemId));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionItem:add")
@Log(title = "检测项定义", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionItemBo bo) {
return toAjax(qcInspectionItemService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionItem:edit")
@Log(title = "检测项定义", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionItemBo bo) {
return toAjax(qcInspectionItemService.updateByBo(bo));
}
/**
*
*
* @param itemIds
*/
@SaCheckPermission("qms:qcInspectionItem:remove")
@Log(title = "检测项定义", businessType = BusinessType.DELETE)
@DeleteMapping("/{itemIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] itemIds) {
return toAjax(qcInspectionItemService.deleteWithValidByIds(List.of(itemIds), true));
}
/**
*
*/
@GetMapping("/getQcInspectionItemList")
public R<List<QcInspectionItemVo>> getQcInspectionItemList(QcInspectionItemBo bo) {
List<QcInspectionItemVo> list = qcInspectionItemService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.qms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.qms.domain.vo.QcInspectionMainVo;
import org.dromara.qms.domain.bo.QcInspectionMainBo;
import org.dromara.qms.service.IQcInspectionMainService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/qms/QcInspectionMain
*
* @author zch
* @date 2025-07-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/QcInspectionMain")
public class QcInspectionMainController extends BaseController {
private final IQcInspectionMainService qcInspectionMainService;
/**
*
*/
@SaCheckPermission("qms:QcInspectionMain:list")
@GetMapping("/list")
public TableDataInfo<QcInspectionMainVo> list(QcInspectionMainBo bo, PageQuery pageQuery) {
return qcInspectionMainService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("qms:QcInspectionMain:export")
@Log(title = "质检主表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QcInspectionMainBo bo, HttpServletResponse response) {
List<QcInspectionMainVo> list = qcInspectionMainService.queryList(bo);
ExcelUtil.exportExcel(list, "质检主表", QcInspectionMainVo.class, response);
}
/**
*
*
* @param inspectionId
*/
@SaCheckPermission("qms:QcInspectionMain:query")
@GetMapping("/{inspectionId}")
public R<QcInspectionMainVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long inspectionId) {
return R.ok(qcInspectionMainService.queryById(inspectionId));
}
/**
*
*/
@SaCheckPermission("qms:QcInspectionMain:add")
@Log(title = "质检主表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionMainBo bo) {
return toAjax(qcInspectionMainService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("qms:QcInspectionMain:edit")
@Log(title = "质检主表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionMainBo bo) {
return toAjax(qcInspectionMainService.updateByBo(bo));
}
/**
*
*
* @param inspectionIds
*/
@SaCheckPermission("qms:QcInspectionMain:remove")
@Log(title = "质检主表", businessType = BusinessType.DELETE)
@DeleteMapping("/{inspectionIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] inspectionIds) {
return toAjax(qcInspectionMainService.deleteWithValidByIds(List.of(inspectionIds), true));
}
/**
*
*/
@GetMapping("/getQcInspectionMainList")
public R<List<QcInspectionMainVo>> getQcInspectionMainList(QcInspectionMainBo bo) {
List<QcInspectionMainVo> list = qcInspectionMainService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.qms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.qms.domain.vo.QcInspectionResultVo;
import org.dromara.qms.domain.bo.QcInspectionResultBo;
import org.dromara.qms.service.IQcInspectionResultService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/qms/qcInspectionResult
*
* @author Yinq
* @date 2025-07-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/qcInspectionResult")
public class QcInspectionResultController extends BaseController {
private final IQcInspectionResultService qcInspectionResultService;
/**
*
*/
@SaCheckPermission("qms:qcInspectionResult:list")
@GetMapping("/list")
public TableDataInfo<QcInspectionResultVo> list(QcInspectionResultBo bo, PageQuery pageQuery) {
return qcInspectionResultService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionResult:export")
@Log(title = "质检结果子表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QcInspectionResultBo bo, HttpServletResponse response) {
List<QcInspectionResultVo> list = qcInspectionResultService.queryList(bo);
ExcelUtil.exportExcel(list, "质检结果子表", QcInspectionResultVo.class, response);
}
/**
*
*
* @param resultId
*/
@SaCheckPermission("qms:qcInspectionResult:query")
@GetMapping("/{resultId}")
public R<QcInspectionResultVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long resultId) {
return R.ok(qcInspectionResultService.queryById(resultId));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionResult:add")
@Log(title = "质检结果子表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionResultBo bo) {
return toAjax(qcInspectionResultService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionResult:edit")
@Log(title = "质检结果子表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionResultBo bo) {
return toAjax(qcInspectionResultService.updateByBo(bo));
}
/**
*
*
* @param resultIds
*/
@SaCheckPermission("qms:qcInspectionResult:remove")
@Log(title = "质检结果子表", businessType = BusinessType.DELETE)
@DeleteMapping("/{resultIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] resultIds) {
return toAjax(qcInspectionResultService.deleteWithValidByIds(List.of(resultIds), true));
}
/**
*
*/
@GetMapping("/getQcInspectionResultList")
public R<List<QcInspectionResultVo>> getQcInspectionResultList(QcInspectionResultBo bo) {
List<QcInspectionResultVo> list = qcInspectionResultService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.qms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.qms.domain.vo.QcInspectionTemplateVo;
import org.dromara.qms.domain.bo.QcInspectionTemplateBo;
import org.dromara.qms.service.IQcInspectionTemplateService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/qms/qcInspectionTemplate
*
* @author zch
* @date 2025-07-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/qcInspectionTemplate")
public class QcInspectionTemplateController extends BaseController {
private final IQcInspectionTemplateService qcInspectionTemplateService;
/**
*
*/
@SaCheckPermission("qms:qcInspectionTemplate:list")
@GetMapping("/list")
public TableDataInfo<QcInspectionTemplateVo> list(QcInspectionTemplateBo bo, PageQuery pageQuery) {
return qcInspectionTemplateService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionTemplate:export")
@Log(title = "检测模板主", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QcInspectionTemplateBo bo, HttpServletResponse response) {
List<QcInspectionTemplateVo> list = qcInspectionTemplateService.queryList(bo);
ExcelUtil.exportExcel(list, "检测模板主", QcInspectionTemplateVo.class, response);
}
/**
*
*
* @param templateId
*/
@SaCheckPermission("qms:qcInspectionTemplate:query")
@GetMapping("/{templateId}")
public R<QcInspectionTemplateVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long templateId) {
return R.ok(qcInspectionTemplateService.queryById(templateId));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionTemplate:add")
@Log(title = "检测模板主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionTemplateBo bo) {
return toAjax(qcInspectionTemplateService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionTemplate:edit")
@Log(title = "检测模板主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionTemplateBo bo) {
return toAjax(qcInspectionTemplateService.updateByBo(bo));
}
/**
*
*
* @param templateIds
*/
@SaCheckPermission("qms:qcInspectionTemplate:remove")
@Log(title = "检测模板主", businessType = BusinessType.DELETE)
@DeleteMapping("/{templateIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] templateIds) {
return toAjax(qcInspectionTemplateService.deleteWithValidByIds(List.of(templateIds), true));
}
/**
*
*/
@GetMapping("/getQcInspectionTemplateList")
public R<List<QcInspectionTemplateVo>> getQcInspectionTemplateList(QcInspectionTemplateBo bo) {
List<QcInspectionTemplateVo> list = qcInspectionTemplateService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.qms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.qms.domain.vo.QcInspectionTypeVo;
import org.dromara.qms.domain.bo.QcInspectionTypeBo;
import org.dromara.qms.service.IQcInspectionTypeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/qms/qcInspectionType
*
* @author zch
* @date 2025-07-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/qcInspectionType")
public class QcInspectionTypeController extends BaseController {
private final IQcInspectionTypeService qcInspectionTypeService;
/**
*
*/
@SaCheckPermission("qms:qcInspectionType:list")
@GetMapping("/list")
public TableDataInfo<QcInspectionTypeVo> list(QcInspectionTypeBo bo, PageQuery pageQuery) {
return qcInspectionTypeService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionType:export")
@Log(title = "检测类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QcInspectionTypeBo bo, HttpServletResponse response) {
List<QcInspectionTypeVo> list = qcInspectionTypeService.queryList(bo);
ExcelUtil.exportExcel(list, "检测类型", QcInspectionTypeVo.class, response);
}
/**
*
*
* @param typeId
*/
@SaCheckPermission("qms:qcInspectionType:query")
@GetMapping("/{typeId}")
public R<QcInspectionTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long typeId) {
return R.ok(qcInspectionTypeService.queryById(typeId));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionType:add")
@Log(title = "检测类型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcInspectionTypeBo bo) {
return toAjax(qcInspectionTypeService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("qms:qcInspectionType:edit")
@Log(title = "检测类型", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcInspectionTypeBo bo) {
return toAjax(qcInspectionTypeService.updateByBo(bo));
}
/**
*
*
* @param typeIds
*/
@SaCheckPermission("qms:qcInspectionType:remove")
@Log(title = "检测类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{typeIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] typeIds) {
return toAjax(qcInspectionTypeService.deleteWithValidByIds(List.of(typeIds), true));
}
/**
*
*/
@GetMapping("/getQcInspectionTypeList")
public R<List<QcInspectionTypeVo>> getQcInspectionTypeList(QcInspectionTypeBo bo) {
List<QcInspectionTypeVo> list = qcInspectionTypeService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,117 @@
package org.dromara.qms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.qms.domain.vo.QcTemplateItemVo;
import org.dromara.qms.domain.bo.QcTemplateItemBo;
import org.dromara.qms.service.IQcTemplateItemService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/qms/qcTemplateItem
*
* @author Yinq
* @date 2025-07-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/qcTemplateItem")
public class QcTemplateItemController extends BaseController {
private final IQcTemplateItemService qcTemplateItemService;
/**
*
*/
@SaCheckPermission("qms:qcTemplateItem:list")
@GetMapping("/list")
public TableDataInfo<QcTemplateItemVo> list(QcTemplateItemBo bo, PageQuery pageQuery) {
return qcTemplateItemService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("qms:qcTemplateItem:export")
@Log(title = "检测模板子表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(QcTemplateItemBo bo, HttpServletResponse response) {
List<QcTemplateItemVo> list = qcTemplateItemService.queryList(bo);
ExcelUtil.exportExcel(list, "检测模板子表", QcTemplateItemVo.class, response);
}
/**
*
*
* @param templateItemId
*/
@SaCheckPermission("qms:qcTemplateItem:query")
@GetMapping("/{templateItemId}")
public R<QcTemplateItemVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long templateItemId) {
return R.ok(qcTemplateItemService.queryById(templateItemId));
}
/**
*
*/
@SaCheckPermission("qms:qcTemplateItem:add")
@Log(title = "检测模板子表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody QcTemplateItemBo bo) {
return toAjax(qcTemplateItemService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("qms:qcTemplateItem:edit")
@Log(title = "检测模板子表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody QcTemplateItemBo bo) {
return toAjax(qcTemplateItemService.updateByBo(bo));
}
/**
*
*
* @param templateItemIds
*/
@SaCheckPermission("qms:qcTemplateItem:remove")
@Log(title = "检测模板子表", businessType = BusinessType.DELETE)
@DeleteMapping("/{templateItemIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] templateItemIds) {
return toAjax(qcTemplateItemService.deleteWithValidByIds(List.of(templateItemIds), true));
}
/**
*
*/
@GetMapping("/getQcTemplateItemList")
public R<List<QcTemplateItemVo>> getQcTemplateItemList(QcTemplateItemBo bo) {
List<QcTemplateItemVo> list = qcTemplateItemService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,127 @@
package org.dromara.qms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* qc_inspection_item
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qc_inspection_item")
public class QcInspectionItem extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "item_id", type = IdType.ASSIGN_ID)
private Long itemId;
/**
*
*/
private String itemCode;
/**
*
*/
private String itemName;
/**
*
*/
private String inspectionPosition;
/**
*
*/
private Long categoryId;
/**
*
*/
private Long inspectionType;
/**
* 0,1
*/
private Long method;
/**
* 0,1
*/
private Long detectType;
/**
* 01
*/
private Long controlType;
/**
*
*/
private Long standardValue;
/**
*
*/
private Long upperLimit;
/**
*
*/
private Long lowerLimit;
/**
*
*/
private String specName;
/**
*
*/
private Long specUpper;
/**
*
*/
private Long specLower;
/**
*
*/
private String description;
/**
*
*/
private String optionCode;
/**
*
*/
private String optionName;
/**
* /
*/
private String isDefault;
/**
* 02
*/
@TableLogic
private String delFlag;
}

@ -0,0 +1,69 @@
package org.dromara.qms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* qc_inspection_item_category
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qc_inspection_item_category")
public class QcInspectionItemCategory extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "category_id", type = IdType.ASSIGN_ID)
private Long categoryId;
/**
*
*/
private String categoryCode;
/**
*
*/
private String categoryName;
/**
*
*/
private Long typeId;
/**
*
*/
private String description;
/**
* 02
*/
@TableLogic
private String delFlag;
/**
*
*/
@TableField(exist = false)
private String typeName;//join
/**
* (
*/
@TableField(exist = false)
private Long qcInspectionType;//join
}

@ -0,0 +1,169 @@
package org.dromara.qms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* qc_inspection_main
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qc_inspection_main")
public class QcInspectionMain extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "inspection_id", type = IdType.ASSIGN_ID)
private Long inspectionId;
/**
* /
*/
private String inspectionNo;
/**
*
*/
private String materialCode;
/**
*
*/
private String materialType;
/**
*
*/
private String materialName;
/**
*
*/
private String processName;
/**
*
*/
private String stationName;
/**
*
*/
private Integer inspectionQty;
/**
*
*/
private Integer qualifiedQty;
/**
*
*/
private Integer unqualifiedQty;
/**
* 0/1
*/
private Long result;
/**
*
*/
private String workshop;
/**
*
*/
private Long typeId;
/**
* 0/1
*/
private Long status;
/**
*
*/
private String inspector;
/**
*
*/
private String shift;
/**
*
*/
private String team;
/**
*
*/
private Date inspectionTime;
/**
*
*/
private String productionOrder;
/**
*
*/
private String batchNo;
/**
*
*/
private String barcode;
/**
*
*/
private String supplierName;
/**
*
*/
private String remark;
/**
* 02
*/
@TableLogic
private String delFlag;
/**
*
*/
@TableField(exist = false)
private String typeCode;//JOIN
/**
*
*/
@TableField(exist = false)
private String typeName;//JOIN
/**
* (
*/
@TableField(exist = false)
private Long qcInspectionType;//JOIN
}

@ -0,0 +1,68 @@
package org.dromara.qms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.io.Serial;
/**
* qc_inspection_result
*
* @author Yinq
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qc_inspection_result")
public class QcInspectionResult extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "result_id", type = IdType.ASSIGN_ID)
private Long resultId;
/**
* ID
*/
private Long inspectionId;
/**
* ID
*/
private Long itemId;
/**
* 01
*/
private Long detectResult;
/**
*
*/
private BigDecimal detectValue;
/**
*
*/
private String specInspection;
/**
*
*/
private String problemDetail;
/**
* 02
*/
@TableLogic
private String delFlag;
}

@ -0,0 +1,114 @@
package org.dromara.qms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* qc_inspection_template
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qc_inspection_template")
public class QcInspectionTemplate extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "template_id", type = IdType.ASSIGN_ID)
private Long templateId;
/**
*
*/
private String templateCode;
/**
*
*/
private String templateName;
/**
*
*/
private String materialCode;
/**
*
*/
private String materialName;
/**
* ID
*/
private Long typeId;
/**
*
*/
private String stationCode;
/**
*
*/
private String stationName;
/**
*
*/
private String processCode;
/**
*
*/
private String processName;
/**
*
*/
private String supplierCode;
/**
*
*/
private String supplierName;
/**
*
*/
private String description;
/**
* 02
*/
@TableLogic
private String delFlag;
/**
*
*/
@TableField(exist = false)
private String typeCode;//JOIN
/**
*
*/
@TableField(exist = false)
private String typeName;//JOIN
/**
* (
*/
@TableField(exist = false)
private Long qcInspectionType;//JOIN
}

@ -0,0 +1,57 @@
package org.dromara.qms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* qc_inspection_type
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qc_inspection_type")
public class QcInspectionType extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "type_id", type = IdType.ASSIGN_ID)
private Long typeId;
/**
*
*/
private String typeCode;
/**
*
*/
private String typeName;
/**
* (
*/
private Long qcInspectionType;
/**
* 1 2
*/
private Long createMethod;
/**
* 02
*/
@TableLogic
private String delFlag;
}

@ -0,0 +1,141 @@
package org.dromara.qms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.io.Serial;
/**
* qc_template_item
*
* @author Yinq
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qc_template_item")
public class QcTemplateItem extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "template_item_id", type = IdType.ASSIGN_ID)
private Long templateItemId;
/**
* ID
*/
private Long templateId;
/**
* ID
*/
private Long itemId;
/**
*
*/
private String itemCode;
/**
*
*/
private String itemName;
/**
*
*/
private String inspectionPosition;
/**
*
*/
private String categoryName;
/**
*
*/
private Long inspectionType;
/**
* 0,1
*/
private Long detectType;
/**
* (0,1)
*/
private Long controlType;
/**
*
*/
private BigDecimal standardValue;
/**
*
*/
private BigDecimal upperLimit;
/**
*
*/
private BigDecimal lowerLimit;
/**
*
*/
private String specName;
/**
*
*/
private BigDecimal specUpper;
/**
*
*/
private BigDecimal specLower;
/**
*
*/
private String description;
/**
* 02
*/
@TableLogic
private String delFlag;
/**
*
*/
@TableField(exist = false)
private String templateCode;//JOIN
/**
*
*/
@TableField(exist = false)
private String templateName;//JOIN
/**
*
*/
@TableField(exist = false)
private String inspectionItemName;//JOIN AS
/**
*
*/
@TableField(exist = false)
private String inspectionItemCode;//JOIN AS
}

@ -0,0 +1,120 @@
package org.dromara.qms.domain.bo;
import org.dromara.qms.domain.QcInspectionItem;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* qc_inspection_item
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = QcInspectionItem.class, reverseConvertGenerate = false)
public class QcInspectionItemBo extends BaseEntity {
/**
*
*/
@NotNull(message = "检测项主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long itemId;
/**
*
*/
private String itemCode;
/**
*
*/
private String itemName;
/**
*
*/
private String inspectionPosition;
/**
*
*/
private Long categoryId;
/**
*
*/
private Long inspectionType;
/**
* 0,1
*/
private Long method;
/**
* 0,1
*/
private Long detectType;
/**
* 01
*/
private Long controlType;
/**
*
*/
private Long standardValue;
/**
*
*/
private Long upperLimit;
/**
*
*/
private Long lowerLimit;
/**
*
*/
private String specName;
/**
*
*/
private Long specUpper;
/**
*
*/
private Long specLower;
/**
*
*/
private String description;
/**
*
*/
private String optionCode;
/**
*
*/
private String optionName;
/**
* /
*/
private String isDefault;
}

@ -0,0 +1,59 @@
package org.dromara.qms.domain.bo;
import org.dromara.qms.domain.QcInspectionItemCategory;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* qc_inspection_item_category
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = QcInspectionItemCategory.class, reverseConvertGenerate = false)
public class QcInspectionItemCategoryBo extends BaseEntity {
/**
*
*/
@NotNull(message = "检测项类别主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long categoryId;
/**
*
*/
private String categoryCode;
/**
*
*/
private String categoryName;
/**
*
*/
private Long typeId;
/**
*
*/
private String description;
/**
*
*/
private String typeName;//join
/**
* (
*/
private Long qcInspectionType;//join
}

@ -0,0 +1,157 @@
package org.dromara.qms.domain.bo;
import org.dromara.qms.domain.QcInspectionMain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* qc_inspection_main
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = QcInspectionMain.class, reverseConvertGenerate = false)
public class QcInspectionMainBo extends BaseEntity {
/**
*
*/
@NotNull(message = "质检主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long inspectionId;
/**
* /
*/
private String inspectionNo;
/**
*
*/
private String materialCode;
/**
*
*/
private String materialType;
/**
*
*/
private String materialName;
/**
*
*/
private String processName;
/**
*
*/
private String stationName;
/**
*
*/
private Integer inspectionQty;
/**
*
*/
private Integer qualifiedQty;
/**
*
*/
private Integer unqualifiedQty;
/**
* 0/1
*/
private Long result;
/**
*
*/
private String workshop;
/**
*
*/
private Long typeId;
/**
* 0/1
*/
private Long status;
/**
*
*/
private String inspector;
/**
*
*/
private String shift;
/**
*
*/
private String team;
/**
*
*/
private Date inspectionTime;
/**
*
*/
private String productionOrder;
/**
*
*/
private String batchNo;
/**
*
*/
private String barcode;
/**
*
*/
private String supplierName;
/**
*
*/
private String remark;
/**
*
*/
private String typeCode;//JOIN
/**
*
*/
private String typeName;//JOIN
/**
* (
*/
private Long qcInspectionType;//JOIN
}

@ -0,0 +1,61 @@
package org.dromara.qms.domain.bo;
import org.dromara.qms.domain.QcInspectionResult;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/**
* qc_inspection_result
*
* @author Yinq
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = QcInspectionResult.class, reverseConvertGenerate = false)
public class QcInspectionResultBo extends BaseEntity {
/**
*
*/
@NotNull(message = "结果主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long resultId;
/**
* ID
*/
private Long inspectionId;
/**
* ID
*/
private Long itemId;
/**
* 01
*/
private Long detectResult;
/**
*
*/
private BigDecimal detectValue;
/**
*
*/
private String specInspection;
/**
*
*/
private String problemDetail;
}

@ -0,0 +1,107 @@
package org.dromara.qms.domain.bo;
import org.dromara.qms.domain.QcInspectionTemplate;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* qc_inspection_template
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = QcInspectionTemplate.class, reverseConvertGenerate = false)
public class QcInspectionTemplateBo extends BaseEntity {
/**
*
*/
@NotNull(message = "模板主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long templateId;
/**
*
*/
@NotBlank(message = "模板编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String templateCode;
/**
*
*/
@NotBlank(message = "模板名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String templateName;
/**
*
*/
private String materialCode;
/**
*
*/
private String materialName;
/**
* ID
*/
private Long typeId;
/**
*
*/
private String stationCode;
/**
*
*/
private String stationName;
/**
*
*/
private String processCode;
/**
*
*/
private String processName;
/**
*
*/
private String supplierCode;
/**
*
*/
private String supplierName;
/**
*
*/
private String description;
/**
*
*/
private String typeCode;//JOIN
/**
*
*/
private String typeName;//JOIN
/**
* (
*/
private Long qcInspectionType;//JOIN
}

@ -0,0 +1,54 @@
package org.dromara.qms.domain.bo;
import org.dromara.qms.domain.QcInspectionType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* qc_inspection_type
*
* @author zch
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = QcInspectionType.class, reverseConvertGenerate = false)
public class QcInspectionTypeBo extends BaseEntity {
/**
*
*/
@NotNull(message = "检测类型主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long typeId;
/**
*
*/
// @NotBlank(message = "检测类型编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String typeCode;
/**
*
*/
// @NotBlank(message = "检测类型名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String typeName;
/**
* (
*/
// @NotNull(message = "检测类型(字典:首检 专检 自检 互检 原材料检 抽检 成品检)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long qcInspectionType;
/**
* 1 2
*/
// @NotNull(message = "创建方式1人工创建 2自动创建不能为空", groups = { AddGroup.class, EditGroup.class })
private Long createMethod;
}

@ -0,0 +1,130 @@
package org.dromara.qms.domain.bo;
import org.dromara.qms.domain.QcTemplateItem;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/**
* qc_template_item
*
* @author Yinq
* @date 2025-07-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = QcTemplateItem.class, reverseConvertGenerate = false)
public class QcTemplateItemBo extends BaseEntity {
/**
*
*/
@NotNull(message = "模板子表主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long templateItemId;
/**
* ID
*/
private Long templateId;
/**
* ID
*/
private Long itemId;
/**
*
*/
private String itemCode;
/**
*
*/
private String itemName;
/**
*
*/
private String inspectionPosition;
/**
*
*/
private String categoryName;
/**
*
*/
private Long inspectionType;
/**
* 0,1
*/
private Long detectType;
/**
* (0,1)
*/
private Long controlType;
/**
*
*/
private BigDecimal standardValue;
/**
*
*/
private BigDecimal upperLimit;
/**
*
*/
private BigDecimal lowerLimit;
/**
*
*/
private String specName;
/**
*
*/
private BigDecimal specUpper;
/**
*
*/
private BigDecimal specLower;
/**
*
*/
private String description;
/**
*
*/
private String templateCode;//JOIN
/**
*
*/
private String templateName;//JOIN
/**
*
*/
private String inspectionItemName;//JOIN AS
/**
*
*/
private String inspectionItemCode;//JOIN AS
}

@ -0,0 +1,74 @@
package org.dromara.qms.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.qms.domain.QcInspectionItemCategory;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* qc_inspection_item_category
*
* @author zch
* @date 2025-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = QcInspectionItemCategory.class)
public class QcInspectionItemCategoryVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "检测项类别主键")
private Long categoryId;
/**
*
*/
@ExcelProperty(value = "检测项类别编码")
private String categoryCode;
/**
*
*/
@ExcelProperty(value = "检测项类别名称")
private String categoryName;
/**
*
*/
@ExcelProperty(value = "检测单类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联检测类型表")
private Long typeId;
/**
*
*/
@ExcelProperty(value = "描述")
private String description;
/**
*
*/
private String typeName;//join
/**
* (
*/
private Long qcInspectionType;//join
}

@ -0,0 +1,151 @@
package org.dromara.qms.domain.vo;
import org.dromara.qms.domain.QcInspectionItem;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* qc_inspection_item
*
* @author zch
* @date 2025-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = QcInspectionItem.class)
public class QcInspectionItemVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "检测项主键")
private Long itemId;
/**
*
*/
@ExcelProperty(value = "检测项编码")
private String itemCode;
/**
*
*/
@ExcelProperty(value = "检测项名称")
private String itemName;
/**
*
*/
@ExcelProperty(value = "检测位置")
private String inspectionPosition;
/**
*
*/
@ExcelProperty(value = "检测项类别", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联检测项类别表")
private Long categoryId;
/**
*
*/
@ExcelProperty(value = "检测单类型")
private Long inspectionType;
/**
* 0,1
*/
@ExcelProperty(value = "检测方法", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "qc_methond")
private Long method;
/**
* 0,1
*/
@ExcelProperty(value = "检测方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "detect_type")
private Long detectType;
/**
* 01
*/
@ExcelProperty(value = "控制类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "control_type")
private Long controlType;
/**
*
*/
@ExcelProperty(value = "标准值")
private Long standardValue;
/**
*
*/
@ExcelProperty(value = "控制上限")
private Long upperLimit;
/**
*
*/
@ExcelProperty(value = "控制下限")
private Long lowerLimit;
/**
*
*/
@ExcelProperty(value = "规格名称")
private String specName;
/**
*
*/
@ExcelProperty(value = "规格上限")
private Long specUpper;
/**
*
*/
@ExcelProperty(value = "规格下限")
private Long specLower;
/**
*
*/
@ExcelProperty(value = "检测项说明")
private String description;
/**
*
*/
@ExcelProperty(value = "检测选项编码")
private String optionCode;
/**
*
*/
@ExcelProperty(value = "检测选项名称")
private String optionName;
/**
* /
*/
@ExcelProperty(value = "是否默认选项", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "is_default")
private String isDefault;
}

@ -0,0 +1,189 @@
package org.dromara.qms.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.qms.domain.QcInspectionMain;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* qc_inspection_main
*
* @author zch
* @date 2025-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = QcInspectionMain.class)
public class QcInspectionMainVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "质检主键")
private Long inspectionId;
/**
* /
*/
@ExcelProperty(value = "检测单号/卡号")
private String inspectionNo;
/**
*
*/
@ExcelProperty(value = "物料编码")
private String materialCode;
/**
*
*/
@ExcelProperty(value = "物料类型")
private String materialType;
/**
*
*/
@ExcelProperty(value = "物料名称")
private String materialName;
/**
*
*/
@ExcelProperty(value = "工序名称")
private String processName;
/**
*
*/
@ExcelProperty(value = "工位名称")
private String stationName;
/**
*
*/
@ExcelProperty(value = "质检数量")
private Integer inspectionQty;
/**
*
*/
@ExcelProperty(value = "合格数")
private Integer qualifiedQty;
/**
*
*/
@ExcelProperty(value = "不合格数")
private Integer unqualifiedQty;
/**
* 0/1
*/
@ExcelProperty(value = "质检结果", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "qc_result")
private Long result;
/**
*
*/
@ExcelProperty(value = "车间")
private String workshop;
/**
*
*/
@ExcelProperty(value = "检测类型主键")
private Long typeId;
/**
* 0/1
*/
@ExcelProperty(value = "单据状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "qc_status")
private Long status;
/**
*
*/
@ExcelProperty(value = "检测人员")
private String inspector;
/**
*
*/
@ExcelProperty(value = "班次")
private String shift;
/**
*
*/
@ExcelProperty(value = "班组")
private String team;
/**
*
*/
@ExcelProperty(value = "检验时间")
private Date inspectionTime;
/**
*
*/
@ExcelProperty(value = "生产订单号")
private String productionOrder;
/**
*
*/
@ExcelProperty(value = "批次号")
private String batchNo;
/**
*
*/
@ExcelProperty(value = "条码号")
private String barcode;
/**
*
*/
@ExcelProperty(value = "供应商名称")
private String supplierName;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
/**
*
*/
private String typeCode;//JOIN
/**
*
*/
private String typeName;//JOIN
/**
* (
*/
private Long qcInspectionType;//JOIN
}

@ -0,0 +1,76 @@
package org.dromara.qms.domain.vo;
import java.math.BigDecimal;
import org.dromara.qms.domain.QcInspectionResult;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* qc_inspection_result
*
* @author Yinq
* @date 2025-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = QcInspectionResult.class)
public class QcInspectionResultVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "结果主键")
private Long resultId;
/**
* ID
*/
@ExcelProperty(value = "关联质检主表ID")
private Long inspectionId;
/**
* ID
*/
@ExcelProperty(value = "关联检测项ID")
private Long itemId;
/**
* 01
*/
@ExcelProperty(value = "检测结果", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "qc_result")
private Long detectResult;
/**
*
*/
@ExcelProperty(value = "定量检测值")
private BigDecimal detectValue;
/**
*
*/
@ExcelProperty(value = "规格质检值")
private String specInspection;
/**
*
*/
@ExcelProperty(value = "定性不合格明细")
private String problemDetail;
}

@ -0,0 +1,124 @@
package org.dromara.qms.domain.vo;
import org.dromara.qms.domain.QcInspectionTemplate;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* qc_inspection_template
*
* @author zch
* @date 2025-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = QcInspectionTemplate.class)
public class QcInspectionTemplateVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "模板主键")
private Long templateId;
/**
*
*/
@ExcelProperty(value = "模板编码")
private String templateCode;
/**
*
*/
@ExcelProperty(value = "模板名称")
private String templateName;
/**
*
*/
@ExcelProperty(value = "物料编码")
private String materialCode;
/**
*
*/
@ExcelProperty(value = "物料名称")
private String materialName;
/**
* ID
*/
@ExcelProperty(value = "关联检测类型表ID")
private Long typeId;
/**
*
*/
@ExcelProperty(value = "工位编码")
private String stationCode;
/**
*
*/
@ExcelProperty(value = "工位名称")
private String stationName;
/**
*
*/
@ExcelProperty(value = "工序编码")
private String processCode;
/**
*
*/
@ExcelProperty(value = "工序名称")
private String processName;
/**
*
*/
@ExcelProperty(value = "供应商编码")
private String supplierCode;
/**
*
*/
@ExcelProperty(value = "供应商名称")
private String supplierName;
/**
*
*/
@ExcelProperty(value = "模板说明")
private String description;
/**
*
*/
private String typeCode;//JOIN
/**
*
*/
private String typeName;//JOIN
/**
* (
*/
private Long qcInspectionType;//JOIN
}

@ -0,0 +1,64 @@
package org.dromara.qms.domain.vo;
import org.dromara.qms.domain.QcInspectionType;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* qc_inspection_type
*
* @author zch
* @date 2025-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = QcInspectionType.class)
public class QcInspectionTypeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "检测类型主键")
private Long typeId;
/**
*
*/
@ExcelProperty(value = "检测类型编码")
private String typeCode;
/**
*
*/
@ExcelProperty(value = "检测类型名称")
private String typeName;
/**
* (
*/
@ExcelProperty(value = "检测类型(字典:首检 专检 自检 互检 原材料检 抽检 成品检)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "qc_inspection_type")
private Long qcInspectionType;
/**
* 1 2
*/
@ExcelProperty(value = "创建方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "create_method")
private Long createMethod;
}

@ -0,0 +1,158 @@
package org.dromara.qms.domain.vo;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.qms.domain.QcTemplateItem;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* qc_template_item
*
* @author Yinq
* @date 2025-07-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = QcTemplateItem.class)
public class QcTemplateItemVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "模板子表主键")
private Long templateItemId;
/**
* ID
*/
@ExcelProperty(value = "关联模板主表ID")
private Long templateId;
/**
* ID
*/
@ExcelProperty(value = "关联检测项定义ID")
private Long itemId;
/**
*
*/
@ExcelProperty(value = "检测项编码")
private String itemCode;
/**
*
*/
@ExcelProperty(value = "检测项名称")
private String itemName;
/**
*
*/
@ExcelProperty(value = "检测位置")
private String inspectionPosition;
/**
*
*/
@ExcelProperty(value = "检测项目类别")
private String categoryName;
/**
*
*/
@ExcelProperty(value = "检测类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "根=据主表关联的类型表主键查来的字典值自动存入")
private Long inspectionType;
/**
* 0,1
*/
@ExcelProperty(value = "检测方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "qc_methond")
private Long detectType;
/**
* (0,1)
*/
@ExcelProperty(value = "控制类型(0手动,1自动)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "control_type")
private Long controlType;
/**
*
*/
@ExcelProperty(value = "标准值")
private BigDecimal standardValue;
/**
*
*/
@ExcelProperty(value = "控制上限")
private BigDecimal upperLimit;
/**
*
*/
@ExcelProperty(value = "控制下限")
private BigDecimal lowerLimit;
/**
*
*/
@ExcelProperty(value = "规格名称")
private String specName;
/**
*
*/
@ExcelProperty(value = "规格上限")
private BigDecimal specUpper;
/**
*
*/
@ExcelProperty(value = "规格下限")
private BigDecimal specLower;
/**
*
*/
@ExcelProperty(value = "检测项说明")
private String description;
/**
*
*/
private String templateCode;//JOIN
/**
*
*/
private String templateName;//JOIN
/**
*
*/
private String inspectionItemName;//JOIN AS
/**
*
*/
private String inspectionItemCode;//JOIN AS
}

@ -0,0 +1,34 @@
package org.dromara.qms.mapper;
import org.dromara.qms.domain.bo.QcInspectionItemCategoryBo;
import org.dromara.qms.domain.QcInspectionItemCategory;
import org.dromara.qms.domain.vo.QcInspectionItemCategoryVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author zch
* @date 2025-07-14
*/
public interface QcInspectionItemCategoryMapper extends BaseMapperPlus<QcInspectionItemCategory, QcInspectionItemCategoryVo> {
/**
*
*
* @param bo
* @return
*/
List<QcInspectionItemCategoryVo> selectVoList(QcInspectionItemCategoryBo bo);
/**
*
*
* @param categoryId
* @return
*/
QcInspectionItemCategoryVo selectVoByCategoryId(Long categoryId);
}

@ -0,0 +1,34 @@
package org.dromara.qms.mapper;
import org.dromara.qms.domain.bo.QcInspectionItemBo;
import org.dromara.qms.domain.QcInspectionItem;
import org.dromara.qms.domain.vo.QcInspectionItemVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author zch
* @date 2025-07-14
*/
public interface QcInspectionItemMapper extends BaseMapperPlus<QcInspectionItem, QcInspectionItemVo> {
/**
*
*
* @param bo
* @return
*/
List<QcInspectionItemVo> selectVoList(QcInspectionItemBo bo);
/**
*
*
* @param itemId
* @return
*/
QcInspectionItemVo selectVoByItemId(Long itemId);
}

@ -0,0 +1,34 @@
package org.dromara.qms.mapper;
import org.dromara.qms.domain.bo.QcInspectionMainBo;
import org.dromara.qms.domain.QcInspectionMain;
import org.dromara.qms.domain.vo.QcInspectionMainVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author zch
* @date 2025-07-14
*/
public interface QcInspectionMainMapper extends BaseMapperPlus<QcInspectionMain, QcInspectionMainVo> {
/**
*
*
* @param bo
* @return
*/
List<QcInspectionMainVo> selectVoList(QcInspectionMainBo bo);
/**
*
*
* @param inspectionId
* @return
*/
QcInspectionMainVo selectVoByInspectionId(Long inspectionId);
}

@ -0,0 +1,34 @@
package org.dromara.qms.mapper;
import org.dromara.qms.domain.bo.QcInspectionResultBo;
import org.dromara.qms.domain.QcInspectionResult;
import org.dromara.qms.domain.vo.QcInspectionResultVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author Yinq
* @date 2025-07-14
*/
public interface QcInspectionResultMapper extends BaseMapperPlus<QcInspectionResult, QcInspectionResultVo> {
/**
*
*
* @param bo
* @return
*/
List<QcInspectionResultVo> selectVoList(QcInspectionResultBo bo);
/**
*
*
* @param resultId
* @return
*/
QcInspectionResultVo selectVoByResultId(Long resultId);
}

@ -0,0 +1,34 @@
package org.dromara.qms.mapper;
import org.dromara.qms.domain.bo.QcInspectionTemplateBo;
import org.dromara.qms.domain.QcInspectionTemplate;
import org.dromara.qms.domain.vo.QcInspectionTemplateVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author zch
* @date 2025-07-14
*/
public interface QcInspectionTemplateMapper extends BaseMapperPlus<QcInspectionTemplate, QcInspectionTemplateVo> {
/**
*
*
* @param bo
* @return
*/
List<QcInspectionTemplateVo> selectVoList(QcInspectionTemplateBo bo);
/**
*
*
* @param templateId
* @return
*/
QcInspectionTemplateVo selectVoByTemplateId(Long templateId);
}

@ -0,0 +1,34 @@
package org.dromara.qms.mapper;
import org.dromara.qms.domain.bo.QcInspectionTypeBo;
import org.dromara.qms.domain.QcInspectionType;
import org.dromara.qms.domain.vo.QcInspectionTypeVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author zch
* @date 2025-07-14
*/
public interface QcInspectionTypeMapper extends BaseMapperPlus<QcInspectionType, QcInspectionTypeVo> {
/**
*
*
* @param bo
* @return
*/
List<QcInspectionTypeVo> selectVoList(QcInspectionTypeBo bo);
/**
*
*
* @param typeId
* @return
*/
QcInspectionTypeVo selectVoByTypeId(Long typeId);
}

@ -0,0 +1,34 @@
package org.dromara.qms.mapper;
import org.dromara.qms.domain.bo.QcTemplateItemBo;
import org.dromara.qms.domain.QcTemplateItem;
import org.dromara.qms.domain.vo.QcTemplateItemVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author Yinq
* @date 2025-07-14
*/
public interface QcTemplateItemMapper extends BaseMapperPlus<QcTemplateItem, QcTemplateItemVo> {
/**
*
*
* @param bo
* @return
*/
List<QcTemplateItemVo> selectVoList(QcTemplateItemBo bo);
/**
*
*
* @param templateItemId
* @return
*/
QcTemplateItemVo selectVoByTemplateItemId(Long templateItemId);
}

@ -0,0 +1,69 @@
package org.dromara.qms.service;
import org.dromara.qms.domain.QcInspectionItemCategory;
import org.dromara.qms.domain.vo.QcInspectionItemCategoryVo;
import org.dromara.qms.domain.bo.QcInspectionItemCategoryBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
public interface IQcInspectionItemCategoryService {
/**
*
*
* @param categoryId
* @return
*/
QcInspectionItemCategoryVo queryById(Long categoryId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<QcInspectionItemCategoryVo> queryPageList(QcInspectionItemCategoryBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<QcInspectionItemCategoryVo> queryList(QcInspectionItemCategoryBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(QcInspectionItemCategoryBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(QcInspectionItemCategoryBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.qms.service;
import org.dromara.qms.domain.QcInspectionItem;
import org.dromara.qms.domain.vo.QcInspectionItemVo;
import org.dromara.qms.domain.bo.QcInspectionItemBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
public interface IQcInspectionItemService {
/**
*
*
* @param itemId
* @return
*/
QcInspectionItemVo queryById(Long itemId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<QcInspectionItemVo> queryPageList(QcInspectionItemBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<QcInspectionItemVo> queryList(QcInspectionItemBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(QcInspectionItemBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(QcInspectionItemBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.qms.service;
import org.dromara.qms.domain.QcInspectionMain;
import org.dromara.qms.domain.vo.QcInspectionMainVo;
import org.dromara.qms.domain.bo.QcInspectionMainBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
public interface IQcInspectionMainService {
/**
*
*
* @param inspectionId
* @return
*/
QcInspectionMainVo queryById(Long inspectionId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<QcInspectionMainVo> queryPageList(QcInspectionMainBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<QcInspectionMainVo> queryList(QcInspectionMainBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(QcInspectionMainBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(QcInspectionMainBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.qms.service;
import org.dromara.qms.domain.QcInspectionResult;
import org.dromara.qms.domain.vo.QcInspectionResultVo;
import org.dromara.qms.domain.bo.QcInspectionResultBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author Yinq
* @date 2025-07-14
*/
public interface IQcInspectionResultService {
/**
*
*
* @param resultId
* @return
*/
QcInspectionResultVo queryById(Long resultId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<QcInspectionResultVo> queryPageList(QcInspectionResultBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<QcInspectionResultVo> queryList(QcInspectionResultBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(QcInspectionResultBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(QcInspectionResultBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.qms.service;
import org.dromara.qms.domain.QcInspectionTemplate;
import org.dromara.qms.domain.vo.QcInspectionTemplateVo;
import org.dromara.qms.domain.bo.QcInspectionTemplateBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
public interface IQcInspectionTemplateService {
/**
*
*
* @param templateId
* @return
*/
QcInspectionTemplateVo queryById(Long templateId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<QcInspectionTemplateVo> queryPageList(QcInspectionTemplateBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<QcInspectionTemplateVo> queryList(QcInspectionTemplateBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(QcInspectionTemplateBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(QcInspectionTemplateBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.qms.service;
import org.dromara.qms.domain.QcInspectionType;
import org.dromara.qms.domain.vo.QcInspectionTypeVo;
import org.dromara.qms.domain.bo.QcInspectionTypeBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
public interface IQcInspectionTypeService {
/**
*
*
* @param typeId
* @return
*/
QcInspectionTypeVo queryById(Long typeId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<QcInspectionTypeVo> queryPageList(QcInspectionTypeBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<QcInspectionTypeVo> queryList(QcInspectionTypeBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(QcInspectionTypeBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(QcInspectionTypeBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,69 @@
package org.dromara.qms.service;
import org.dromara.qms.domain.QcTemplateItem;
import org.dromara.qms.domain.vo.QcTemplateItemVo;
import org.dromara.qms.domain.bo.QcTemplateItemBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author Yinq
* @date 2025-07-14
*/
public interface IQcTemplateItemService {
/**
*
*
* @param templateItemId
* @return
*/
QcTemplateItemVo queryById(Long templateItemId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<QcTemplateItemVo> queryPageList(QcTemplateItemBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<QcTemplateItemVo> queryList(QcTemplateItemBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(QcTemplateItemBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(QcTemplateItemBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,142 @@
package org.dromara.qms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.qms.domain.QcInspectionType;
import org.springframework.stereotype.Service;
import org.dromara.qms.domain.bo.QcInspectionItemCategoryBo;
import org.dromara.qms.domain.vo.QcInspectionItemCategoryVo;
import org.dromara.qms.domain.QcInspectionItemCategory;
import org.dromara.qms.mapper.QcInspectionItemCategoryMapper;
import org.dromara.qms.service.IQcInspectionItemCategoryService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
@RequiredArgsConstructor
@Service
public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCategoryService {
private final QcInspectionItemCategoryMapper baseMapper;
/**
*
*
* @param categoryId
* @return
*/
@Override
public QcInspectionItemCategoryVo queryById(Long categoryId){
return baseMapper.selectVoById(categoryId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<QcInspectionItemCategoryVo> queryPageList(QcInspectionItemCategoryBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<QcInspectionItemCategory> lqw = buildQueryWrapper(bo);
Page<QcInspectionItemCategoryVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<QcInspectionItemCategoryVo> queryList(QcInspectionItemCategoryBo bo) {
MPJLambdaWrapper<QcInspectionItemCategory> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<QcInspectionItemCategory> buildQueryWrapper(QcInspectionItemCategoryBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<QcInspectionItemCategory> lqw = JoinWrappers.lambda(QcInspectionItemCategory.class)
.selectAll(QcInspectionItemCategory.class)
// 查询检测类型列表
.select(QcInspectionType::getTypeName)
.leftJoin(QcInspectionType.class, QcInspectionType::getTypeId, QcInspectionItemCategory::getTypeId)
.eq(bo.getCategoryId() != null, QcInspectionItemCategory::getCategoryId, bo.getCategoryId())
.eq(StringUtils.isNotBlank(bo.getCategoryCode()), QcInspectionItemCategory::getCategoryCode, bo.getCategoryCode())
.like(StringUtils.isNotBlank(bo.getCategoryName()), QcInspectionItemCategory::getCategoryName, bo.getCategoryName())
.eq(bo.getTypeId() != null, QcInspectionItemCategory::getTypeId, bo.getTypeId())
.eq(StringUtils.isNotBlank(bo.getDescription()), QcInspectionItemCategory::getDescription, bo.getDescription())
.orderByDesc(QcInspectionItemCategory::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(QcInspectionItemCategoryBo bo) {
QcInspectionItemCategory add = MapstructUtils.convert(bo, QcInspectionItemCategory.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setCategoryId(add.getCategoryId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(QcInspectionItemCategoryBo bo) {
QcInspectionItemCategory update = MapstructUtils.convert(bo, QcInspectionItemCategory.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(QcInspectionItemCategory entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,150 @@
package org.dromara.qms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.qms.domain.bo.QcInspectionItemBo;
import org.dromara.qms.domain.vo.QcInspectionItemVo;
import org.dromara.qms.domain.QcInspectionItem;
import org.dromara.qms.mapper.QcInspectionItemMapper;
import org.dromara.qms.service.IQcInspectionItemService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
@RequiredArgsConstructor
@Service
public class QcInspectionItemServiceImpl implements IQcInspectionItemService {
private final QcInspectionItemMapper baseMapper;
/**
*
*
* @param itemId
* @return
*/
@Override
public QcInspectionItemVo queryById(Long itemId){
return baseMapper.selectVoById(itemId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<QcInspectionItemVo> queryPageList(QcInspectionItemBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<QcInspectionItem> lqw = buildQueryWrapper(bo);
Page<QcInspectionItemVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<QcInspectionItemVo> queryList(QcInspectionItemBo bo) {
MPJLambdaWrapper<QcInspectionItem> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<QcInspectionItem> buildQueryWrapper(QcInspectionItemBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<QcInspectionItem> lqw = JoinWrappers.lambda(QcInspectionItem.class)
.selectAll(QcInspectionItem.class)
.eq(bo.getItemId() != null, QcInspectionItem::getItemId, bo.getItemId())
.eq(StringUtils.isNotBlank(bo.getItemCode()), QcInspectionItem::getItemCode, bo.getItemCode())
.like(StringUtils.isNotBlank(bo.getItemName()), QcInspectionItem::getItemName, bo.getItemName())
.eq(StringUtils.isNotBlank(bo.getInspectionPosition()), QcInspectionItem::getInspectionPosition, bo.getInspectionPosition())
.eq(bo.getCategoryId() != null, QcInspectionItem::getCategoryId, bo.getCategoryId())
.eq(bo.getInspectionType() != null, QcInspectionItem::getInspectionType, bo.getInspectionType())
.eq(bo.getMethod() != null, QcInspectionItem::getMethod, bo.getMethod())
.eq(bo.getDetectType() != null, QcInspectionItem::getDetectType, bo.getDetectType())
.eq(bo.getControlType() != null, QcInspectionItem::getControlType, bo.getControlType())
.eq(bo.getStandardValue() != null, QcInspectionItem::getStandardValue, bo.getStandardValue())
.eq(bo.getUpperLimit() != null, QcInspectionItem::getUpperLimit, bo.getUpperLimit())
.eq(bo.getLowerLimit() != null, QcInspectionItem::getLowerLimit, bo.getLowerLimit())
.like(StringUtils.isNotBlank(bo.getSpecName()), QcInspectionItem::getSpecName, bo.getSpecName())
.eq(bo.getSpecUpper() != null, QcInspectionItem::getSpecUpper, bo.getSpecUpper())
.eq(bo.getSpecLower() != null, QcInspectionItem::getSpecLower, bo.getSpecLower())
.eq(StringUtils.isNotBlank(bo.getDescription()), QcInspectionItem::getDescription, bo.getDescription())
.eq(StringUtils.isNotBlank(bo.getOptionCode()), QcInspectionItem::getOptionCode, bo.getOptionCode())
.like(StringUtils.isNotBlank(bo.getOptionName()), QcInspectionItem::getOptionName, bo.getOptionName())
.eq(StringUtils.isNotBlank(bo.getIsDefault()), QcInspectionItem::getIsDefault, bo.getIsDefault())
.orderByDesc(QcInspectionItem::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(QcInspectionItemBo bo) {
QcInspectionItem add = MapstructUtils.convert(bo, QcInspectionItem.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setItemId(add.getItemId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(QcInspectionItemBo bo) {
QcInspectionItem update = MapstructUtils.convert(bo, QcInspectionItem.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(QcInspectionItem entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,160 @@
package org.dromara.qms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.qms.domain.QcInspectionTemplate;
import org.dromara.qms.domain.QcInspectionType;
import org.springframework.stereotype.Service;
import org.dromara.qms.domain.bo.QcInspectionMainBo;
import org.dromara.qms.domain.vo.QcInspectionMainVo;
import org.dromara.qms.domain.QcInspectionMain;
import org.dromara.qms.mapper.QcInspectionMainMapper;
import org.dromara.qms.service.IQcInspectionMainService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
@RequiredArgsConstructor
@Service
public class QcInspectionMainServiceImpl implements IQcInspectionMainService {
private final QcInspectionMainMapper baseMapper;
/**
*
*
* @param inspectionId
* @return
*/
@Override
public QcInspectionMainVo queryById(Long inspectionId){
return baseMapper.selectVoById(inspectionId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<QcInspectionMainVo> queryPageList(QcInspectionMainBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<QcInspectionMain> lqw = buildQueryWrapper(bo);
Page<QcInspectionMainVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<QcInspectionMainVo> queryList(QcInspectionMainBo bo) {
MPJLambdaWrapper<QcInspectionMain> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<QcInspectionMain> buildQueryWrapper(QcInspectionMainBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<QcInspectionMain> lqw = JoinWrappers.lambda(QcInspectionMain.class)
.selectAll(QcInspectionMain.class)
//关联检测类型
.select(QcInspectionType::getTypeName, QcInspectionType::getQcInspectionType, QcInspectionType::getTypeCode)
.leftJoin(QcInspectionType.class, QcInspectionType::getTypeId, QcInspectionMain::getTypeId)
.eq(bo.getInspectionId() != null, QcInspectionMain::getInspectionId, bo.getInspectionId())
.eq(StringUtils.isNotBlank(bo.getInspectionNo()), QcInspectionMain::getInspectionNo, bo.getInspectionNo())
.eq(StringUtils.isNotBlank(bo.getMaterialCode()), QcInspectionMain::getMaterialCode, bo.getMaterialCode())
.eq(StringUtils.isNotBlank(bo.getMaterialType()), QcInspectionMain::getMaterialType, bo.getMaterialType())
.like(StringUtils.isNotBlank(bo.getMaterialName()), QcInspectionMain::getMaterialName, bo.getMaterialName())
.like(StringUtils.isNotBlank(bo.getProcessName()), QcInspectionMain::getProcessName, bo.getProcessName())
.like(StringUtils.isNotBlank(bo.getStationName()), QcInspectionMain::getStationName, bo.getStationName())
.eq(bo.getInspectionQty() != null, QcInspectionMain::getInspectionQty, bo.getInspectionQty())
.eq(bo.getQualifiedQty() != null, QcInspectionMain::getQualifiedQty, bo.getQualifiedQty())
.eq(bo.getUnqualifiedQty() != null, QcInspectionMain::getUnqualifiedQty, bo.getUnqualifiedQty())
.eq(bo.getResult() != null, QcInspectionMain::getResult, bo.getResult())
.eq(StringUtils.isNotBlank(bo.getWorkshop()), QcInspectionMain::getWorkshop, bo.getWorkshop())
.eq(bo.getTypeId() != null, QcInspectionMain::getTypeId, bo.getTypeId())
.eq(bo.getStatus() != null, QcInspectionMain::getStatus, bo.getStatus())
.eq(StringUtils.isNotBlank(bo.getInspector()), QcInspectionMain::getInspector, bo.getInspector())
.eq(StringUtils.isNotBlank(bo.getShift()), QcInspectionMain::getShift, bo.getShift())
.eq(StringUtils.isNotBlank(bo.getTeam()), QcInspectionMain::getTeam, bo.getTeam())
.eq(bo.getInspectionTime() != null, QcInspectionMain::getInspectionTime, bo.getInspectionTime())
.eq(StringUtils.isNotBlank(bo.getProductionOrder()), QcInspectionMain::getProductionOrder, bo.getProductionOrder())
.eq(StringUtils.isNotBlank(bo.getBatchNo()), QcInspectionMain::getBatchNo, bo.getBatchNo())
.eq(StringUtils.isNotBlank(bo.getBarcode()), QcInspectionMain::getBarcode, bo.getBarcode())
.like(StringUtils.isNotBlank(bo.getSupplierName()), QcInspectionMain::getSupplierName, bo.getSupplierName())
.orderByDesc(QcInspectionMain::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(QcInspectionMainBo bo) {
QcInspectionMain add = MapstructUtils.convert(bo, QcInspectionMain.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setInspectionId(add.getInspectionId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(QcInspectionMainBo bo) {
QcInspectionMain update = MapstructUtils.convert(bo, QcInspectionMain.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(QcInspectionMain entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,138 @@
package org.dromara.qms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.qms.domain.bo.QcInspectionResultBo;
import org.dromara.qms.domain.vo.QcInspectionResultVo;
import org.dromara.qms.domain.QcInspectionResult;
import org.dromara.qms.mapper.QcInspectionResultMapper;
import org.dromara.qms.service.IQcInspectionResultService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author Yinq
* @date 2025-07-14
*/
@RequiredArgsConstructor
@Service
public class QcInspectionResultServiceImpl implements IQcInspectionResultService {
private final QcInspectionResultMapper baseMapper;
/**
*
*
* @param resultId
* @return
*/
@Override
public QcInspectionResultVo queryById(Long resultId){
return baseMapper.selectVoById(resultId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<QcInspectionResultVo> queryPageList(QcInspectionResultBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<QcInspectionResult> lqw = buildQueryWrapper(bo);
Page<QcInspectionResultVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<QcInspectionResultVo> queryList(QcInspectionResultBo bo) {
MPJLambdaWrapper<QcInspectionResult> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<QcInspectionResult> buildQueryWrapper(QcInspectionResultBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<QcInspectionResult> lqw = JoinWrappers.lambda(QcInspectionResult.class)
.selectAll(QcInspectionResult.class)
.eq(bo.getResultId() != null, QcInspectionResult::getResultId, bo.getResultId())
.eq(bo.getInspectionId() != null, QcInspectionResult::getInspectionId, bo.getInspectionId())
.eq(bo.getItemId() != null, QcInspectionResult::getItemId, bo.getItemId())
.eq(bo.getDetectResult() != null, QcInspectionResult::getDetectResult, bo.getDetectResult())
.eq(bo.getDetectValue() != null, QcInspectionResult::getDetectValue, bo.getDetectValue())
.eq(StringUtils.isNotBlank(bo.getSpecInspection()), QcInspectionResult::getSpecInspection, bo.getSpecInspection())
.eq(StringUtils.isNotBlank(bo.getProblemDetail()), QcInspectionResult::getProblemDetail, bo.getProblemDetail())
.orderByDesc(QcInspectionResult::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(QcInspectionResultBo bo) {
QcInspectionResult add = MapstructUtils.convert(bo, QcInspectionResult.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setResultId(add.getResultId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(QcInspectionResultBo bo) {
QcInspectionResult update = MapstructUtils.convert(bo, QcInspectionResult.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(QcInspectionResult entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,150 @@
package org.dromara.qms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.qms.domain.QcInspectionType;
import org.springframework.stereotype.Service;
import org.dromara.qms.domain.bo.QcInspectionTemplateBo;
import org.dromara.qms.domain.vo.QcInspectionTemplateVo;
import org.dromara.qms.domain.QcInspectionTemplate;
import org.dromara.qms.mapper.QcInspectionTemplateMapper;
import org.dromara.qms.service.IQcInspectionTemplateService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
@RequiredArgsConstructor
@Service
public class QcInspectionTemplateServiceImpl implements IQcInspectionTemplateService {
private final QcInspectionTemplateMapper baseMapper;
/**
*
*
* @param templateId
* @return
*/
@Override
public QcInspectionTemplateVo queryById(Long templateId){
return baseMapper.selectVoById(templateId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<QcInspectionTemplateVo> queryPageList(QcInspectionTemplateBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<QcInspectionTemplate> lqw = buildQueryWrapper(bo);
Page<QcInspectionTemplateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<QcInspectionTemplateVo> queryList(QcInspectionTemplateBo bo) {
MPJLambdaWrapper<QcInspectionTemplate> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<QcInspectionTemplate> buildQueryWrapper(QcInspectionTemplateBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<QcInspectionTemplate> lqw = JoinWrappers.lambda(QcInspectionTemplate.class)
.selectAll(QcInspectionTemplate.class)
//关联检测类型
.select(QcInspectionType::getTypeName, QcInspectionType::getQcInspectionType, QcInspectionType::getTypeCode)
.leftJoin(QcInspectionType.class, QcInspectionType::getTypeId, QcInspectionTemplate::getTypeId)
.eq(bo.getTemplateId() != null, QcInspectionTemplate::getTemplateId, bo.getTemplateId())
.eq(StringUtils.isNotBlank(bo.getTemplateCode()), QcInspectionTemplate::getTemplateCode, bo.getTemplateCode())
.like(StringUtils.isNotBlank(bo.getTemplateName()), QcInspectionTemplate::getTemplateName, bo.getTemplateName())
.eq(StringUtils.isNotBlank(bo.getMaterialCode()), QcInspectionTemplate::getMaterialCode, bo.getMaterialCode())
.like(StringUtils.isNotBlank(bo.getMaterialName()), QcInspectionTemplate::getMaterialName, bo.getMaterialName())
.eq(bo.getTypeId() != null, QcInspectionTemplate::getTypeId, bo.getTypeId())
.eq(StringUtils.isNotBlank(bo.getStationCode()), QcInspectionTemplate::getStationCode, bo.getStationCode())
.like(StringUtils.isNotBlank(bo.getStationName()), QcInspectionTemplate::getStationName, bo.getStationName())
.eq(StringUtils.isNotBlank(bo.getProcessCode()), QcInspectionTemplate::getProcessCode, bo.getProcessCode())
.like(StringUtils.isNotBlank(bo.getProcessName()), QcInspectionTemplate::getProcessName, bo.getProcessName())
.eq(StringUtils.isNotBlank(bo.getSupplierCode()), QcInspectionTemplate::getSupplierCode, bo.getSupplierCode())
.like(StringUtils.isNotBlank(bo.getSupplierName()), QcInspectionTemplate::getSupplierName, bo.getSupplierName())
.eq(StringUtils.isNotBlank(bo.getDescription()), QcInspectionTemplate::getDescription, bo.getDescription())
.orderByDesc(QcInspectionTemplate::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(QcInspectionTemplateBo bo) {
QcInspectionTemplate add = MapstructUtils.convert(bo, QcInspectionTemplate.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTemplateId(add.getTemplateId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(QcInspectionTemplateBo bo) {
QcInspectionTemplate update = MapstructUtils.convert(bo, QcInspectionTemplate.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(QcInspectionTemplate entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,136 @@
package org.dromara.qms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.qms.domain.bo.QcInspectionTypeBo;
import org.dromara.qms.domain.vo.QcInspectionTypeVo;
import org.dromara.qms.domain.QcInspectionType;
import org.dromara.qms.mapper.QcInspectionTypeMapper;
import org.dromara.qms.service.IQcInspectionTypeService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-07-14
*/
@RequiredArgsConstructor
@Service
public class QcInspectionTypeServiceImpl implements IQcInspectionTypeService {
private final QcInspectionTypeMapper baseMapper;
/**
*
*
* @param typeId
* @return
*/
@Override
public QcInspectionTypeVo queryById(Long typeId){
return baseMapper.selectVoById(typeId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<QcInspectionTypeVo> queryPageList(QcInspectionTypeBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<QcInspectionType> lqw = buildQueryWrapper(bo);
Page<QcInspectionTypeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<QcInspectionTypeVo> queryList(QcInspectionTypeBo bo) {
MPJLambdaWrapper<QcInspectionType> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<QcInspectionType> buildQueryWrapper(QcInspectionTypeBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<QcInspectionType> lqw = JoinWrappers.lambda(QcInspectionType.class)
.selectAll(QcInspectionType.class)
.eq(bo.getTypeId() != null, QcInspectionType::getTypeId, bo.getTypeId())
.eq(StringUtils.isNotBlank(bo.getTypeCode()), QcInspectionType::getTypeCode, bo.getTypeCode())
.like(StringUtils.isNotBlank(bo.getTypeName()), QcInspectionType::getTypeName, bo.getTypeName())
.eq(bo.getQcInspectionType() != null, QcInspectionType::getQcInspectionType, bo.getQcInspectionType())
.eq(bo.getCreateMethod() != null, QcInspectionType::getCreateMethod, bo.getCreateMethod())
.orderByDesc(QcInspectionType::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(QcInspectionTypeBo bo) {
QcInspectionType add = MapstructUtils.convert(bo, QcInspectionType.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTypeId(add.getTypeId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(QcInspectionTypeBo bo) {
QcInspectionType update = MapstructUtils.convert(bo, QcInspectionType.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(QcInspectionType entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,162 @@
package org.dromara.qms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.qms.domain.QcInspectionItem;
import org.dromara.qms.domain.QcInspectionTemplate;
import org.dromara.qms.domain.QcInspectionType;
import org.springframework.stereotype.Service;
import org.dromara.qms.domain.bo.QcTemplateItemBo;
import org.dromara.qms.domain.vo.QcTemplateItemVo;
import org.dromara.qms.domain.QcTemplateItem;
import org.dromara.qms.mapper.QcTemplateItemMapper;
import org.dromara.qms.service.IQcTemplateItemService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author Yinq
* @date 2025-07-14
*/
@RequiredArgsConstructor
@Service
public class QcTemplateItemServiceImpl implements IQcTemplateItemService {
private final QcTemplateItemMapper baseMapper;
/**
*
*
* @param templateItemId
* @return
*/
@Override
public QcTemplateItemVo queryById(Long templateItemId){
return baseMapper.selectVoById(templateItemId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<QcTemplateItemVo> queryPageList(QcTemplateItemBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<QcTemplateItem> lqw = buildQueryWrapper(bo);
Page<QcTemplateItemVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<QcTemplateItemVo> queryList(QcTemplateItemBo bo) {
MPJLambdaWrapper<QcTemplateItem> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<QcTemplateItem> buildQueryWrapper(QcTemplateItemBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<QcTemplateItem> lqw = JoinWrappers.lambda(QcTemplateItem.class)
.selectAll(QcTemplateItem.class)
//关联模板主表
.select(QcInspectionTemplate::getTemplateName, QcInspectionTemplate::getTemplateCode)
.leftJoin(QcInspectionTemplate.class, QcInspectionTemplate::getTemplateId, QcTemplateItem::getTemplateId)
//关联检测项定义表
// .select(QcInspectionItem::getItemName, QcInspectionItem::getItemCode)
.selectAs(QcInspectionItem::getItemName, QcTemplateItem::getInspectionItemName)
.selectAs(QcInspectionItem::getItemCode, QcTemplateItem::getInspectionItemCode)
.leftJoin(QcInspectionItem.class, QcInspectionItem::getItemId, QcTemplateItem::getItemId)
.eq(bo.getTemplateItemId() != null, QcTemplateItem::getTemplateItemId, bo.getTemplateItemId())
.eq(bo.getTemplateId() != null, QcTemplateItem::getTemplateId, bo.getTemplateId())
.eq(bo.getItemId() != null, QcTemplateItem::getItemId, bo.getItemId())
.eq(StringUtils.isNotBlank(bo.getItemCode()), QcTemplateItem::getItemCode, bo.getItemCode())
.like(StringUtils.isNotBlank(bo.getItemName()), QcTemplateItem::getItemName, bo.getItemName())
.eq(StringUtils.isNotBlank(bo.getInspectionPosition()), QcTemplateItem::getInspectionPosition, bo.getInspectionPosition())
.eq(StringUtils.isNotBlank(bo.getCategoryName()), QcTemplateItem::getCategoryName, bo.getCategoryName())
.eq(bo.getInspectionType() != null, QcTemplateItem::getInspectionType, bo.getInspectionType())
.eq(bo.getDetectType() != null, QcTemplateItem::getDetectType, bo.getDetectType())
.eq(bo.getControlType() != null, QcTemplateItem::getControlType, bo.getControlType())
.eq(bo.getStandardValue() != null, QcTemplateItem::getStandardValue, bo.getStandardValue())
.eq(bo.getUpperLimit() != null, QcTemplateItem::getUpperLimit, bo.getUpperLimit())
.eq(bo.getLowerLimit() != null, QcTemplateItem::getLowerLimit, bo.getLowerLimit())
.eq(StringUtils.isNotBlank(bo.getSpecName()), QcTemplateItem::getSpecName, bo.getSpecName())
.eq(bo.getSpecUpper() != null, QcTemplateItem::getSpecUpper, bo.getSpecUpper())
.eq(bo.getSpecLower() != null, QcTemplateItem::getSpecLower, bo.getSpecLower())
.eq(StringUtils.isNotBlank(bo.getDescription()), QcTemplateItem::getDescription, bo.getDescription())
.orderByDesc(QcTemplateItem::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(QcTemplateItemBo bo) {
QcTemplateItem add = MapstructUtils.convert(bo, QcTemplateItem.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTemplateItemId(add.getTemplateItemId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(QcTemplateItemBo bo) {
QcTemplateItem update = MapstructUtils.convert(bo, QcTemplateItem.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(QcTemplateItem entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -21,10 +21,10 @@ CREATE TABLE qc_grade_info (
attr3 VARCHAR(255) -- 预留字段3
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储产品各工序的品级定义信息,如合格、不良品、废品等',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储产品各工序的品级定义信息,如合格、不良品、废品等',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_grade_info';
-- 为品级信息表字段添加中文备注
@ -71,10 +71,10 @@ CREATE TABLE qc_defect_detail (
remark VARCHAR(255) -- 备注
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储产品质检中各类病疵的详细信息,包括病疵代号、名称、关联工序等,用于质检时记录问题明细',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储产品质检中各类病疵的详细信息,包括病疵代号、名称、关联工序等,用于质检时记录问题明细',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_defect_detail';
-- 为病疵信息表字段添加中文备注
@ -112,10 +112,10 @@ CREATE TABLE qc_inspection_type (
update_time DATETIME -- 修改时间
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'定义质检的类型信息,包括检测类型名称、编码、检测单类型及任务创建方式,用于关联检测模板和触发质检任务',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'定义质检的类型信息,包括检测类型名称、编码、检测单类型及任务创建方式,用于关联检测模板和触发质检任务',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_type';
-- 为检测类型表字段添加中文备注
@ -145,10 +145,10 @@ CREATE TABLE qc_inspection_item_category (
FOREIGN KEY (inspection_type) REFERENCES qc_inspection_type(inspection_type)
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'定义检测项的分类信息,如外观质检、尺寸质检等,关联检测类型表的检测单类型,用于组织检测项',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'定义检测项的分类信息,如外观质检、尺寸质检等,关联检测类型表的检测单类型,用于组织检测项',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_item_category';
-- 为检测项类别表字段添加中文备注
@ -178,8 +178,8 @@ CREATE TABLE qc_inspection_item (
upper_limit DECIMAL(18,2), -- 控制上限
lower_limit DECIMAL(18,2), -- 控制下限
spec_name VARCHAR(50), -- 规格名称
spec_upper VARCHAR(50), -- 规格上线
spec_lower VARCHAR(50), -- 规格下线
spec_upper VARCHAR(50), -- 规格上
spec_lower VARCHAR(50), -- 规格下
description VARCHAR(500), -- 检测项说明
option_code VARCHAR(30), -- 检测选项编码
option_name VARCHAR(50), -- 检测选项名称
@ -187,10 +187,10 @@ CREATE TABLE qc_inspection_item (
FOREIGN KEY (category_id) REFERENCES qc_inspection_item_category(category_id)
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'定义具体的检测项目信息,包括检测项名称、编码、方法、上下限等,关联检测项类别,用于检测模板和质检结果记录',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'定义具体的检测项目信息,包括检测项名称、编码、方法、上下限等,关联检测项类别,用于检测模板和质检结果记录',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_item';
-- 为检测项定义表字段添加中文备注
@ -207,8 +207,8 @@ EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'标准值' , @leve
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'控制上限' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'upper_limit';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'控制下限' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'lower_limit';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_name';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格上线' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_upper';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格下线' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_lower';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格上' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_upper';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格下' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_lower';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测项说明' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'description';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测选项编码' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'option_code';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测选项名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'option_name';
@ -237,10 +237,10 @@ CREATE TABLE qc_inspection_template (
FOREIGN KEY (type_id) REFERENCES qc_inspection_type(type_id)
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储质检模板的基本信息,包括模板名称、关联物料、检测类型、工序等,用于生成质检任务的标准模板',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储质检模板的基本信息,包括模板名称、关联物料、检测类型、工序等,用于生成质检任务的标准模板',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_template';
-- 为检测模板主表字段添加中文备注
@ -279,17 +279,17 @@ CREATE TABLE qc_template_item (
upper_limit DECIMAL(18,2), -- 控制上限
lower_limit DECIMAL(18,2), -- 控制下限
spec_name VARCHAR(50), -- 规格名称
spec_upper VARCHAR(50), -- 规格上线
spec_lower VARCHAR(50), -- 规格下线
spec_upper VARCHAR(50), -- 规格上
spec_lower VARCHAR(50), -- 规格下
description VARCHAR(500), -- 检测项说明
FOREIGN KEY (template_id) REFERENCES qc_inspection_template(template_id),
FOREIGN KEY (item_id) REFERENCES qc_inspection_item(item_id)
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储质检模板关联的具体检测项明细,包括检测项名称、上下限、检测方式等,与模板主表和检测项定义表关联',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储质检模板关联的具体检测项明细,包括检测项名称、上下限、检测方式等,与模板主表和检测项定义表关联',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_template_item';
-- 为检测模板子表字段添加中文备注
@ -307,8 +307,8 @@ EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'标准值' , @leve
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'控制上限' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'upper_limit';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'控制下限' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'lower_limit';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'spec_name';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格上线' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'spec_upper';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格下线' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'spec_lower';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格上' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'spec_upper';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格下' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'spec_lower';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测项说明' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_template_item',@level2type=N'COLUMN',@level2name=N'description';
@ -338,10 +338,10 @@ CREATE TABLE qc_inspection_main (
supplier_name VARCHAR(255) -- 供应商名称
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储质检任务的整体信息,包括检测单号、关联物料、质检数量、合格数、不合格数及单据状态等,作为质检结果的主表',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储质检任务的整体信息,包括检测单号、关联物料、质检数量、合格数、不合格数及单据状态等,作为质检结果的主表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_main';
-- 为质检主表字段添加中文备注
@ -382,10 +382,10 @@ CREATE TABLE qc_inspection_result (
FOREIGN KEY (item_id) REFERENCES qc_inspection_item(item_id)
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储每个检测项的具体质检结果,包括检测结果、定量检测值、定性不合格明细等,关联质检主表和检测项定义表',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储每个检测项的具体质检结果,包括检测结果、定量检测值、定性不合格明细等,关联质检主表和检测项定义表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_result';
-- 为质检结果子表字段添加中文备注
@ -417,10 +417,10 @@ CREATE TABLE qc_unqualified_review (
FOREIGN KEY (inspection_id) REFERENCES qc_inspection_main(inspection_id)
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储不合格品的待评审信息,包括不合格检测单号、关联质检任务、检测类型及评审结果,用于不合格品的处置流程',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储不合格品的待评审信息,包括不合格检测单号、关联质检任务、检测类型及评审结果,用于不合格品的处置流程',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_unqualified_review';
-- 为不合格品待评审表字段添加中文备注
@ -449,10 +449,10 @@ CREATE TABLE qc_unqualified_record (
FOREIGN KEY (review_id) REFERENCES qc_unqualified_review(review_id)
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储不合格品的评审历史记录,包括评审时间、补充说明等,关联不合格品待评审表,用于追溯评审过程',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'存储不合格品的评审历史记录,包括评审时间、补充说明等,关联不合格品待评审表,用于追溯评审过程',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_unqualified_record';
-- 为不合格品评审记录表字段添加中文备注

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.qms.mapper.QcInspectionItemCategoryMapper">
<resultMap type="QcInspectionItemCategory" id="QcInspectionItemCategoryResult">
<result property="categoryId" column="category_id" />
<result property="tenantId" column="tenant_id" />
<result property="categoryCode" column="category_code" />
<result property="categoryName" column="category_name" />
<result property="typeId" column="type_id" />
<result property="description" column="description" />
<result property="createBy" column="create_by" />
<result property="createDept" column="create_dept" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectQcInspectionItemCategoryVo">
select category_id, tenant_id, category_code, category_name, type_id, description, create_by, create_dept, create_time, update_by, update_time, del_flag
from qc_inspection_item_category
</sql>
<select id="selectQcInspectionItemCategoryList" parameterType="QcInspectionItemCategory" resultMap="QcInspectionItemCategoryResult">
<include refid="selectQcInspectionItemCategoryVo"/>
<where>
<if test="categoryId != null "> and category_id = #{categoryId}</if>
<if test="categoryCode != null and categoryCode != ''"> and category_code = #{categoryCode}</if>
<if test="categoryName != null and categoryName != ''"> and category_name like concat('%', #{categoryName}, '%')</if>
<if test="typeId != null "> and type_id = #{typeId}</if>
<if test="description != null and description != ''"> and description = #{description}</if>
</where>
</select>
<select id="selectQcInspectionItemCategoryByCategoryId" parameterType="Long" resultMap="QcInspectionItemCategoryResult">
<include refid="selectQcInspectionItemCategoryVo"/>
where category_id = #{categoryId}
</select>
</mapper>

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.qms.mapper.QcInspectionItemMapper">
<resultMap type="QcInspectionItem" id="QcInspectionItemResult">
<result property="itemId" column="item_id" />
<result property="tenantId" column="tenant_id" />
<result property="itemCode" column="item_code" />
<result property="itemName" column="item_name" />
<result property="inspectionPosition" column="inspection_position" />
<result property="categoryId" column="category_id" />
<result property="inspectionType" column="inspection_type" />
<result property="method" column="method" />
<result property="detectType" column="detect_type" />
<result property="controlType" column="control_type" />
<result property="standardValue" column="standard_value" />
<result property="upperLimit" column="upper_limit" />
<result property="lowerLimit" column="lower_limit" />
<result property="specName" column="spec_name" />
<result property="specUpper" column="spec_upper" />
<result property="specLower" column="spec_lower" />
<result property="description" column="description" />
<result property="optionCode" column="option_code" />
<result property="optionName" column="option_name" />
<result property="isDefault" column="is_default" />
<result property="createBy" column="create_by" />
<result property="createDept" column="create_dept" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectQcInspectionItemVo">
select item_id, tenant_id, item_code, item_name, inspection_position, category_id, inspection_type, method, detect_type, control_type, standard_value, upper_limit, lower_limit, spec_name, spec_upper, spec_lower, description, option_code, option_name, is_default, create_by, create_dept, create_time, update_by, update_time, del_flag
from qc_inspection_item
</sql>
<select id="selectQcInspectionItemList" parameterType="QcInspectionItem" resultMap="QcInspectionItemResult">
<include refid="selectQcInspectionItemVo"/>
<where>
<if test="itemId != null "> and item_id = #{itemId}</if>
<if test="itemCode != null and itemCode != ''"> and item_code = #{itemCode}</if>
<if test="itemName != null and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
<if test="inspectionPosition != null and inspectionPosition != ''"> and inspection_position = #{inspectionPosition}</if>
<if test="categoryId != null "> and category_id = #{categoryId}</if>
<if test="inspectionType != null "> and inspection_type = #{inspectionType}</if>
<if test="method != null "> and method = #{method}</if>
<if test="detectType != null "> and detect_type = #{detectType}</if>
<if test="controlType != null "> and control_type = #{controlType}</if>
<if test="standardValue != null "> and standard_value = #{standardValue}</if>
<if test="upperLimit != null "> and upper_limit = #{upperLimit}</if>
<if test="lowerLimit != null "> and lower_limit = #{lowerLimit}</if>
<if test="specName != null and specName != ''"> and spec_name like concat('%', #{specName}, '%')</if>
<if test="specUpper != null "> and spec_upper = #{specUpper}</if>
<if test="specLower != null "> and spec_lower = #{specLower}</if>
<if test="description != null and description != ''"> and description = #{description}</if>
<if test="optionCode != null and optionCode != ''"> and option_code = #{optionCode}</if>
<if test="optionName != null and optionName != ''"> and option_name like concat('%', #{optionName}, '%')</if>
<if test="isDefault != null and isDefault != ''"> and is_default = #{isDefault}</if>
</where>
</select>
<select id="selectQcInspectionItemByItemId" parameterType="Long" resultMap="QcInspectionItemResult">
<include refid="selectQcInspectionItemVo"/>
where item_id = #{itemId}
</select>
</mapper>

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.qms.mapper.QcInspectionMainMapper">
<resultMap type="QcInspectionMain" id="QcInspectionMainResult">
<result property="inspectionId" column="inspection_id" />
<result property="tenantId" column="tenant_id" />
<result property="inspectionNo" column="inspection_no" />
<result property="materialCode" column="material_code" />
<result property="materialType" column="material_type" />
<result property="materialName" column="material_name" />
<result property="processName" column="process_name" />
<result property="stationName" column="station_name" />
<result property="inspectionQty" column="inspection_qty" />
<result property="qualifiedQty" column="qualified_qty" />
<result property="unqualifiedQty" column="unqualified_qty" />
<result property="result" column="result" />
<result property="workshop" column="workshop" />
<result property="typeId" column="type_id" />
<result property="status" column="status" />
<result property="inspector" column="inspector" />
<result property="shift" column="shift" />
<result property="team" column="team" />
<result property="inspectionTime" column="inspection_time" />
<result property="productionOrder" column="production_order" />
<result property="batchNo" column="batch_no" />
<result property="barcode" column="barcode" />
<result property="supplierName" column="supplier_name" />
<result property="remark" column="remark" />
<result property="createDept" column="create_dept" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectQcInspectionMainVo">
select inspection_id, tenant_id, inspection_no, material_code, material_type, material_name, process_name, station_name, inspection_qty, qualified_qty, unqualified_qty, result, workshop, type_id, status, inspector, shift, team, inspection_time, production_order, batch_no, barcode, supplier_name, remark, create_dept, create_by, create_time, update_by, update_time, del_flag
from qc_inspection_main
</sql>
<select id="selectQcInspectionMainList" parameterType="QcInspectionMain" resultMap="QcInspectionMainResult">
<include refid="selectQcInspectionMainVo"/>
<where>
<if test="inspectionId != null "> and inspection_id = #{inspectionId}</if>
<if test="inspectionNo != null and inspectionNo != ''"> and inspection_no = #{inspectionNo}</if>
<if test="materialCode != null and materialCode != ''"> and material_code = #{materialCode}</if>
<if test="materialType != null and materialType != ''"> and material_type = #{materialType}</if>
<if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
<if test="processName != null and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
<if test="stationName != null and stationName != ''"> and station_name like concat('%', #{stationName}, '%')</if>
<if test="inspectionQty != null "> and inspection_qty = #{inspectionQty}</if>
<if test="qualifiedQty != null "> and qualified_qty = #{qualifiedQty}</if>
<if test="unqualifiedQty != null "> and unqualified_qty = #{unqualifiedQty}</if>
<if test="result != null "> and result = #{result}</if>
<if test="workshop != null and workshop != ''"> and workshop = #{workshop}</if>
<if test="typeId != null "> and type_id = #{typeId}</if>
<if test="status != null "> and status = #{status}</if>
<if test="inspector != null and inspector != ''"> and inspector = #{inspector}</if>
<if test="shift != null and shift != ''"> and shift = #{shift}</if>
<if test="team != null and team != ''"> and team = #{team}</if>
<if test="inspectionTime != null "> and inspection_time = #{inspectionTime}</if>
<if test="productionOrder != null and productionOrder != ''"> and production_order = #{productionOrder}</if>
<if test="batchNo != null and batchNo != ''"> and batch_no = #{batchNo}</if>
<if test="barcode != null and barcode != ''"> and barcode = #{barcode}</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName}, '%')</if>
</where>
</select>
<select id="selectQcInspectionMainByInspectionId" parameterType="Long" resultMap="QcInspectionMainResult">
<include refid="selectQcInspectionMainVo"/>
where inspection_id = #{inspectionId}
</select>
</mapper>

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.qms.mapper.QcInspectionResultMapper">
<resultMap type="QcInspectionResult" id="QcInspectionResultResult">
<result property="resultId" column="result_id" />
<result property="tenantId" column="tenant_id" />
<result property="inspectionId" column="inspection_id" />
<result property="itemId" column="item_id" />
<result property="detectResult" column="detect_result" />
<result property="detectValue" column="detect_value" />
<result property="specInspection" column="spec_inspection" />
<result property="problemDetail" column="problem_detail" />
<result property="createDept" column="create_dept" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectQcInspectionResultVo">
select result_id, tenant_id, inspection_id, item_id, detect_result, detect_value, spec_inspection, problem_detail, create_dept, create_by, create_time, update_by, update_time, del_flag
from qc_inspection_result
</sql>
<select id="selectQcInspectionResultList" parameterType="QcInspectionResult" resultMap="QcInspectionResultResult">
<include refid="selectQcInspectionResultVo"/>
<where>
<if test="resultId != null "> and result_id = #{resultId}</if>
<if test="inspectionId != null "> and inspection_id = #{inspectionId}</if>
<if test="itemId != null "> and item_id = #{itemId}</if>
<if test="detectResult != null "> and detect_result = #{detectResult}</if>
<if test="detectValue != null "> and detect_value = #{detectValue}</if>
<if test="specInspection != null and specInspection != ''"> and spec_inspection = #{specInspection}</if>
<if test="problemDetail != null and problemDetail != ''"> and problem_detail = #{problemDetail}</if>
</where>
</select>
<select id="selectQcInspectionResultByResultId" parameterType="Long" resultMap="QcInspectionResultResult">
<include refid="selectQcInspectionResultVo"/>
where result_id = #{resultId}
</select>
</mapper>

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.qms.mapper.QcInspectionTemplateMapper">
<resultMap type="QcInspectionTemplate" id="QcInspectionTemplateResult">
<result property="templateId" column="template_id" />
<result property="tenantId" column="tenant_id" />
<result property="templateCode" column="template_code" />
<result property="templateName" column="template_name" />
<result property="materialCode" column="material_code" />
<result property="materialName" column="material_name" />
<result property="typeId" column="type_id" />
<result property="stationCode" column="station_code" />
<result property="stationName" column="station_name" />
<result property="processCode" column="process_code" />
<result property="processName" column="process_name" />
<result property="supplierCode" column="supplier_code" />
<result property="supplierName" column="supplier_name" />
<result property="description" column="description" />
<result property="createDept" column="create_dept" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectQcInspectionTemplateVo">
select template_id, tenant_id, template_code, template_name, material_code, material_name, type_id, station_code, station_name, process_code, process_name, supplier_code, supplier_name, description, create_dept, create_by, create_time, update_by, update_time, del_flag
from qc_inspection_template
</sql>
<select id="selectQcInspectionTemplateList" parameterType="QcInspectionTemplate" resultMap="QcInspectionTemplateResult">
<include refid="selectQcInspectionTemplateVo"/>
<where>
<if test="templateId != null "> and template_id = #{templateId}</if>
<if test="templateCode != null and templateCode != ''"> and template_code = #{templateCode}</if>
<if test="templateName != null and templateName != ''"> and template_name like concat('%', #{templateName}, '%')</if>
<if test="materialCode != null and materialCode != ''"> and material_code = #{materialCode}</if>
<if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
<if test="typeId != null "> and type_id = #{typeId}</if>
<if test="stationCode != null and stationCode != ''"> and station_code = #{stationCode}</if>
<if test="stationName != null and stationName != ''"> and station_name like concat('%', #{stationName}, '%')</if>
<if test="processCode != null and processCode != ''"> and process_code = #{processCode}</if>
<if test="processName != null and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
<if test="supplierCode != null and supplierCode != ''"> and supplier_code = #{supplierCode}</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName}, '%')</if>
<if test="description != null and description != ''"> and description = #{description}</if>
</where>
</select>
<select id="selectQcInspectionTemplateByTemplateId" parameterType="Long" resultMap="QcInspectionTemplateResult">
<include refid="selectQcInspectionTemplateVo"/>
where template_id = #{templateId}
</select>
</mapper>

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.qms.mapper.QcInspectionTypeMapper">
<resultMap type="QcInspectionType" id="QcInspectionTypeResult">
<result property="typeId" column="type_id" />
<result property="tenantId" column="tenant_id" />
<result property="typeCode" column="type_code" />
<result property="typeName" column="type_name" />
<result property="qcInspectionType" column="qc_inspection_type" />
<result property="createMethod" column="create_method" />
<result property="createBy" column="create_by" />
<result property="createDept" column="create_dept" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectQcInspectionTypeVo">
select type_id, tenant_id, type_code, type_name, qc_inspection_type, create_method, create_by, create_dept, create_time, update_by, update_time, del_flag
from qc_inspection_type
</sql>
<select id="selectQcInspectionTypeList" parameterType="QcInspectionType" resultMap="QcInspectionTypeResult">
<include refid="selectQcInspectionTypeVo"/>
<where>
<if test="typeId != null "> and type_id = #{typeId}</if>
<if test="typeCode != null and typeCode != ''"> and type_code = #{typeCode}</if>
<if test="typeName != null and typeName != ''"> and type_name like concat('%', #{typeName}, '%')</if>
<if test="qcInspectionType != null "> and qc_inspection_type = #{qcInspectionType}</if>
<if test="createMethod != null "> and create_method = #{createMethod}</if>
</where>
</select>
<select id="selectQcInspectionTypeByTypeId" parameterType="Long" resultMap="QcInspectionTypeResult">
<include refid="selectQcInspectionTypeVo"/>
where type_id = #{typeId}
</select>
</mapper>

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.qms.mapper.QcTemplateItemMapper">
<resultMap type="QcTemplateItem" id="QcTemplateItemResult">
<result property="templateItemId" column="template_item_id" />
<result property="tenantId" column="tenant_id" />
<result property="templateId" column="template_id" />
<result property="itemId" column="item_id" />
<result property="itemCode" column="item_code" />
<result property="itemName" column="item_name" />
<result property="inspectionPosition" column="inspection_position" />
<result property="categoryName" column="category_name" />
<result property="inspectionType" column="inspection_type" />
<result property="detectType" column="detect_type" />
<result property="controlType" column="control_type" />
<result property="standardValue" column="standard_value" />
<result property="upperLimit" column="upper_limit" />
<result property="lowerLimit" column="lower_limit" />
<result property="specName" column="spec_name" />
<result property="specUpper" column="spec_upper" />
<result property="specLower" column="spec_lower" />
<result property="description" column="description" />
<result property="createDept" column="create_dept" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectQcTemplateItemVo">
select template_item_id, tenant_id, template_id, item_id, item_code, item_name, inspection_position, category_name, inspection_type, detect_type, control_type, standard_value, upper_limit, lower_limit, spec_name, spec_upper, spec_lower, description, create_dept, create_by, create_time, update_by, update_time, del_flag
from qc_template_item
</sql>
<select id="selectQcTemplateItemList" parameterType="QcTemplateItem" resultMap="QcTemplateItemResult">
<include refid="selectQcTemplateItemVo"/>
<where>
<if test="templateItemId != null "> and template_item_id = #{templateItemId}</if>
<if test="templateId != null "> and template_id = #{templateId}</if>
<if test="itemId != null "> and item_id = #{itemId}</if>
<if test="itemCode != null and itemCode != ''"> and item_code = #{itemCode}</if>
<if test="itemName != null and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
<if test="inspectionPosition != null and inspectionPosition != ''"> and inspection_position = #{inspectionPosition}</if>
<if test="categoryName != null and categoryName != ''"> and category_name = #{categoryName}</if>
<if test="inspectionType != null "> and inspection_type = #{inspectionType}</if>
<if test="detectType != null "> and detect_type = #{detectType}</if>
<if test="controlType != null "> and control_type = #{controlType}</if>
<if test="standardValue != null "> and standard_value = #{standardValue}</if>
<if test="upperLimit != null "> and upper_limit = #{upperLimit}</if>
<if test="lowerLimit != null "> and lower_limit = #{lowerLimit}</if>
<if test="specName != null and specName != ''"> and spec_name = #{specName}</if>
<if test="specUpper != null "> and spec_upper = #{specUpper}</if>
<if test="specLower != null "> and spec_lower = #{specLower}</if>
<if test="description != null and description != ''"> and description = #{description}</if>
</where>
</select>
<select id="selectQcTemplateItemByTemplateItemId" parameterType="Long" resultMap="QcTemplateItemResult">
<include refid="selectQcTemplateItemVo"/>
where template_item_id = #{templateItemId}
</select>
</mapper>

@ -6,6 +6,9 @@ IF OBJECT_ID(N'dbo.qc_inspection_template', N'U') IS NOT NULL DROP TABLE dbo.qc_
IF OBJECT_ID(N'dbo.qc_template_item', N'U') IS NOT NULL DROP TABLE dbo.qc_template_item;
IF OBJECT_ID(N'dbo.qc_inspection_main', N'U') IS NOT NULL DROP TABLE dbo.qc_inspection_main;
IF OBJECT_ID(N'dbo.qc_inspection_result', N'U') IS NOT NULL DROP TABLE dbo.qc_inspection_result;
IF OBJECT_ID(N'dbo.qc_unqualified_review', N'U') IS NOT NULL DROP TABLE dbo.qc_unqualified_review;
IF OBJECT_ID(N'dbo.qc_unqualified_record', N'U') IS NOT NULL DROP TABLE dbo.qc_unqualified_record;
-- 3. 检测类型表(定义质检的类型,如首检、过程检等)
-- 其他表绑定检测类型主键来查询编码、名称、类型(字典,通过字典键值来进行一定的逻辑操作)
@ -24,10 +27,10 @@ CREATE TABLE qc_inspection_type (
del_flag CHAR(1) DEFAULT '0' -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测类型表,其他表绑定检测类型主键来查询编码、名称、类型(字典,通过字典键值来进行一定的逻辑操作)',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测类型表,其他表绑定检测类型主键来查询编码、名称、类型(字典,通过字典键值来进行一定的逻辑操作)',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_type';
-- 为检测类型表字段添加中文备注
@ -61,10 +64,10 @@ CREATE TABLE qc_inspection_item_category (
del_flag CHAR(1) DEFAULT '0' -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测项类别表',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测项类别表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_item_category';
-- 为检测项类别表字段添加中文备注
@ -94,12 +97,12 @@ CREATE TABLE qc_inspection_item (
method char(1), -- 检测方法0目视,1千分尺
detect_type char(1) , -- 检测方式0定性,1定量
control_type char(1), -- 控制类型0手动输入1自动输入
standard_value DECIMAL(18,2), -- 标准值
standard_value DECIMAL(18,2), -- 标准值
upper_limit DECIMAL(18,2), -- 控制上限
lower_limit DECIMAL(18,2), -- 控制下限
spec_name VARCHAR(50), -- 规格名称
spec_upper DECIMAL(18,2), -- 规格上线
spec_lower DECIMAL(18,2), -- 规格下线
spec_upper DECIMAL(18,2), -- 规格上
spec_lower DECIMAL(18,2), -- 规格下
description VARCHAR(500), -- 检测项说明
option_code VARCHAR(30), -- 检测选项编码
option_name VARCHAR(50), -- 检测选项名称
@ -112,10 +115,10 @@ CREATE TABLE qc_inspection_item (
del_flag CHAR(1) DEFAULT '0' -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测项定义表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_item';
-- 为检测项定义表字段添加中文备注
@ -133,8 +136,8 @@ EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'标准值' , @leve
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'控制上限' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'upper_limit';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'控制下限' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'lower_limit';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_name';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格上线' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_upper';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格下线' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_lower';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格上' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_upper';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'规格下' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'spec_lower';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测项说明' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'description';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测选项编码' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'option_code';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测选项名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item',@level2type=N'COLUMN',@level2name=N'option_name';
@ -170,10 +173,10 @@ CREATE TABLE qc_inspection_template (
del_flag CHAR(1) DEFAULT '0', -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测模板主表',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测模板主表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_template';
-- 为检测模板主表字段添加中文备注
@ -227,10 +230,10 @@ CREATE TABLE qc_template_item (
del_flag CHAR(1) DEFAULT '0', -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测模板子表',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'检测模板子表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_template_item';
-- 为检测模板子表字段添加中文备注
@ -294,10 +297,10 @@ CREATE TABLE qc_inspection_main (
del_flag CHAR(1) DEFAULT '0', -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'质检主表',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'质检主表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_main';
-- 为质检主表字段添加中文备注
@ -352,15 +355,15 @@ CREATE TABLE qc_inspection_result (
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'质检结果子表',
@level0type = N'SCHEMA', @level0name = N'dbo',
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'质检结果子表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_inspection_result';
-- 为质检结果子表字段添加中文备注
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'结果主键' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'result_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'租户号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'tenant_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'租户号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'tenant_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'关联质检主表ID' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'inspection_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'关联检测项ID' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'item_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测结果0合格1不合格' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'detect_result';
@ -372,4 +375,93 @@ EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @l
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'修改人' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'update_by';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'update_time';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除0表示存在2表示删除' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'del_flag';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建部门' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'create_dept';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建部门' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'create_dept';
-- 10. 不合格品待评审表(存储不合格品的待评审信息,用于评审处置)
CREATE TABLE qc_unqualified_review (
review_id BIGINT PRIMARY KEY, -- 评审主键
tenant_id VARCHAR(32), -- 租户号
unqualified_no VARCHAR(50) NOT NULL, -- 不合格检测单号
inspection_id BIGINT NOT NULL, -- 关联质检主表ID
type_id BIGINT NOT NULL, -- 检测类型ID
work_order VARCHAR(50), -- 派工单号
process_code VARCHAR(50), -- 工序编码
process_name VARCHAR(255), -- 工序名称
batch_no VARCHAR(50), -- 批次号
material_name VARCHAR(255), -- 物料名称
material_code VARCHAR(50), -- 物料编码
inspector_result VARCHAR(10), -- 质检员检测结果
review_result char(1), -- 评审结果0报废/1返工/2退货
reviewer VARCHAR(32), -- 评审人
review_time DATETIME, -- 评审时间
create_dept BIGINT, -- 创建部门
create_by BIGINT, -- 创建人
create_time DATETIME, -- 创建时间
update_by BIGINT, -- 修改人
update_time DATETIME, -- 修改时间
del_flag CHAR(1) DEFAULT '0', -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'不合格品待评审表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_unqualified_review';
-- 为不合格品待评审表字段添加中文备注
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'评审主键' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'review_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'租户号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'tenant_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'不合格检测单号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'unqualified_no';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'关联质检主表ID' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'inspection_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测类型ID' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level2type=N'COLUMN',@level2name=N'type_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'派工单号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'work_order';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'工序编码' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'process_code';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'工序名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'process_name';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'批次号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'batch_no';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'物料名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'material_name';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'物料编码' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'material_code';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'质检员检测结果' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'inspector_result';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'评审结果0报废/1返工/2退货' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level2type=N'COLUMN',@level2name=N'review_result';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'评审人' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'reviewer';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'评审时间' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@level2type=N'COLUMN',@level2name=N'review_time';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建人' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'create_by';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'create_time';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'修改人' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'update_by';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'update_time';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除0表示存在2表示删除' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'del_flag';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建部门' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'create_dept';
-- 11. 不合格品评审记录表(存储不合格品的评审历史记录)
CREATE TABLE qc_unqualified_record (
record_id BIGINT PRIMARY KEY, -- 记录主键
tenant_id VARCHAR(32), -- 租户号
review_id BIGINT NOT NULL, -- 关联待评审表ID
remark VARCHAR(500), -- 备注
create_dept BIGINT, -- 创建部门
create_by BIGINT, -- 创建人
create_time DATETIME, -- 创建时间
update_by BIGINT, -- 修改人
update_time DATETIME, -- 修改时间
del_flag CHAR(1) DEFAULT '0', -- 是否删除0表示存在2表示删除
);
-- 添加表备注
EXEC sp_addextendedproperty
@name = N'MS_Description',
@value = N'不合格品评审记录表',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'qc_unqualified_record';
-- 为不合格品评审记录表字段添加中文备注
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'记录主键' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'record_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'租户号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'tenant_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'关联待评审表ID' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'review_id';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'remark';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建人' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'create_by';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'create_time';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'修改人' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'update_by';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'update_time';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除0表示存在2表示删除' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'del_flag';
EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建部门' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_record',@level2type=N'COLUMN',@level2name=N'create_dept';

Loading…
Cancel
Save