From 7ea5724effabefdf0a308a5e8820c3826f634cab Mon Sep 17 00:00:00 2001 From: zch Date: Fri, 18 Jul 2025 13:51:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(qms):=20=E6=B7=BB=E5=8A=A0=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E9=A1=B9=E7=B1=BB=E5=88=AB=E3=80=81=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E9=A1=B9=E5=AE=9A=E4=B9=89=E3=80=81=E8=B4=A8=E6=A3=80=E4=B8=BB?= =?UTF-8?q?=E8=A1=A8=E3=80=81=E8=B4=A8=E6=A3=80=E7=BB=93=E6=9E=9C=E5=AD=90?= =?UTF-8?q?=E8=A1=A8=E3=80=81=E6=A3=80=E6=B5=8B=E6=A8=A1=E6=9D=BF=E4=B8=BB?= =?UTF-8?q?=E8=A1=A8=E3=80=81=E6=A3=80=E6=B5=8B=E7=B1=BB=E5=9E=8B=E3=80=81?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=A8=A1=E6=9D=BF=E5=AD=90=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在各个控制器中添加了 /importData 接口用于数据导入 - 在服务层实现了数据导入的逻辑 - 增加了数据导入的权限控制和日志记录 - 优化了数据校验逻辑,增加了编码和名称的唯一性校验 --- .../dubbo/RemoteLubeInstanceServiceImpl.java | 2 +- .../DmsBillsMaintInstanceServiceImpl.java | 2 +- .../impl/BaseDeviceTypeServiceImpl.java | 12 ++++++ .../QcInspectionItemCategoryController.java | 30 +++++++++++++++ .../QcInspectionItemController.java | 21 ++++++++++ .../QcInspectionMainController.java | 29 ++++++++++++++ .../QcInspectionResultController.java | 21 ++++++++++ .../QcInspectionTemplateController.java | 38 ++++++++++++++++--- .../QcInspectionTypeController.java | 33 ++++++++++++++++ .../controller/QcTemplateItemController.java | 23 +++++++++++ .../qms/domain/QcInspectionResult.java | 2 +- .../qms/domain/bo/QcInspectionResultBo.java | 2 +- .../domain/vo/QcInspectionItemCategoryVo.java | 2 +- .../qms/domain/vo/QcInspectionItemVo.java | 2 +- .../qms/domain/vo/QcInspectionMainVo.java | 2 +- .../qms/domain/vo/QcInspectionResultVo.java | 2 +- .../qms/domain/vo/QcInspectionTemplateVo.java | 2 +- .../qms/domain/vo/QcInspectionTypeVo.java | 2 +- .../qms/domain/vo/QcTemplateItemVo.java | 2 +- .../QcInspectionItemCategoryServiceImpl.java | 30 +++++++++++++-- .../impl/QcInspectionTypeServiceImpl.java | 25 ++++++++++++ .../src/main/resources/qms新建表结构.sql | 38 ++++++++++--------- 22 files changed, 286 insertions(+), 36 deletions(-) diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteLubeInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteLubeInstanceServiceImpl.java index 94fb508..75013e2 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteLubeInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteLubeInstanceServiceImpl.java @@ -175,7 +175,7 @@ public class RemoteLubeInstanceServiceImpl implements RemoteLubeInstanceService return R.fail(); } - // 创建新的润滑工单实例对象 + // 创建新的润滑工单对象 DmsBillsLubeInstance dmsBillsLubeInstance = new DmsBillsLubeInstance(); // 设置润滑工单的计划ID dmsBillsLubeInstance.setPlanLubeId(dmsPlanLube.getPlanLubeId()); diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java index 2ea100d..074c386 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java @@ -333,7 +333,7 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS RemoteStartProcess startProcess = new RemoteStartProcess(); // 设置流程代码 startProcess.setFlowCode(DmsConstants.DMS_BILLS_MAINT_INSTANCE_WF_CODE); - // 获取业务ID(保养实例ID) + // 获取业务ID(保养ID) String businessId = dmsBillsMaintInstance.getMaintInstanceId().toString(); // 设置业务ID startProcess.setBusinessId(businessId); diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseDeviceTypeServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseDeviceTypeServiceImpl.java index c4da5d7..ba4305f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseDeviceTypeServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseDeviceTypeServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.mes.service.impl; import org.apache.commons.lang3.ObjectUtils; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -11,6 +12,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.mes.domain.BaseDeviceCategory; +import org.dromara.mes.domain.BaseMaterialType; import org.dromara.mes.domain.vo.BaseMaterialTypeVo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.BaseDeviceTypeBo; @@ -18,6 +20,7 @@ import org.dromara.mes.domain.vo.BaseDeviceTypeVo; import org.dromara.mes.domain.BaseDeviceType; import org.dromara.mes.mapper.BaseDeviceTypeMapper; import org.dromara.mes.service.IBaseDeviceTypeService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -149,10 +152,19 @@ public class BaseDeviceTypeServiceImpl implements IBaseDeviceTypeService { * @return 是否删除成功 */ @Override + @Transactional public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + for (Long id : ids) { + //监测删除的节点是否有子节点 + BaseDeviceType query = new BaseDeviceType(); + query.setParentId(id); + if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { + throw new ServiceException("存在子节点,不允许删除"); + } + } return baseMapper.deleteByIds(ids) > 0; } } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java index 3460a87..bac0c2c 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemCategoryController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.excel.core.DefaultExcelListener; +import org.dromara.common.excel.core.ExcelResult; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -20,6 +23,9 @@ 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.springframework.web.multipart.MultipartFile; +import org.springframework.beans.BeanUtils; + /** * 检测项类别 @@ -126,4 +132,28 @@ public class QcInspectionItemCategoryController extends BaseController { List list = qcInspectionItemCategoryService.queryList(bo); return R.ok(list); } + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + @SaCheckPermission("qms:qcInspectionItemCategory:add") + @Log(title = "检测项类别", businessType = BusinessType.IMPORT) + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), QcInspectionItemCategoryVo.class, new DefaultExcelListener<>(true)); + int successCount = 0; + for (QcInspectionItemCategoryVo vo : result.getList()) { + QcInspectionItemCategoryBo bo = new QcInspectionItemCategoryBo(); + BeanUtils.copyProperties(vo, bo); + if (qcInspectionItemCategoryService.insertByBo(bo)) { + successCount++; + } + } + return R.ok("导入成功: " + successCount + " 条" + result.getAnalysis()); + } + + } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemController.java index e2b1bee..0853b01 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionItemController.java @@ -22,6 +22,11 @@ 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; +import org.springframework.beans.BeanUtils; +import org.springframework.http.MediaType; +import org.springframework.web.multipart.MultipartFile; +import org.dromara.common.excel.core.DefaultExcelListener; +import org.dromara.common.excel.core.ExcelResult; /** * 检测项定义 @@ -126,4 +131,20 @@ public class QcInspectionItemController extends BaseController { List list = qcInspectionItemService.queryList(bo); return R.ok(list); } + + @SaCheckPermission("qms:qcInspectionItem:add") + @Log(title = "检测项定义", businessType = BusinessType.IMPORT) + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), QcInspectionItemVo.class, new DefaultExcelListener<>(true)); + int successCount = 0; + for (QcInspectionItemVo vo : result.getList()) { + QcInspectionItemBo bo = new QcInspectionItemBo(); + BeanUtils.copyProperties(vo, bo); + if (qcInspectionItemService.insertByBo(bo)) { + successCount++; + } + } + return R.ok("导入成功: " + successCount + " 条" + result.getAnalysis()); + } } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionMainController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionMainController.java index 2449722..85bc7cc 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionMainController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionMainController.java @@ -22,6 +22,11 @@ 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; +import org.springframework.http.MediaType; +import org.springframework.web.multipart.MultipartFile; +import org.dromara.common.excel.core.DefaultExcelListener; +import org.dromara.common.excel.core.ExcelResult; +import org.springframework.beans.BeanUtils; /** * 质检主表 @@ -126,4 +131,28 @@ public class QcInspectionMainController extends BaseController { List list = qcInspectionMainService.queryList(bo); return R.ok(list); } + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + @SaCheckPermission("qms:QcInspectionMain:add") + @Log(title = "质检主表", businessType = BusinessType.IMPORT) + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), QcInspectionMainVo.class, new DefaultExcelListener<>(true)); + int successCount = 0; + for (QcInspectionMainVo vo : result.getList()) { + QcInspectionMainBo bo = new QcInspectionMainBo(); + BeanUtils.copyProperties(vo, bo); + if (qcInspectionMainService.insertByBo(bo)) { + successCount++; + } + } + return R.ok("导入成功: " + successCount + " 条" + result.getAnalysis()); + } + + } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionResultController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionResultController.java index 137b55c..1c696da 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionResultController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionResultController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.excel.core.DefaultExcelListener; +import org.dromara.common.excel.core.ExcelResult; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -21,6 +24,8 @@ 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; +import org.springframework.beans.BeanUtils; +import org.springframework.web.multipart.MultipartFile; /** * 质检结果子表 @@ -114,4 +119,20 @@ public class QcInspectionResultController extends BaseController { List list = qcInspectionResultService.queryList(bo); return R.ok(list); } + + @SaCheckPermission("qms:qcInspectionResult:add") + @Log(title = "质检结果子表", businessType = BusinessType.IMPORT) + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), QcInspectionResultVo.class, new DefaultExcelListener<>(true)); + int successCount = 0; + for (QcInspectionResultVo vo : result.getList()) { + QcInspectionResultBo bo = new QcInspectionResultBo(); + BeanUtils.copyProperties(vo, bo); + if (qcInspectionResultService.insertByBo(bo)) { + successCount++; + } + } + return R.ok("导入成功: " + successCount + " 条" + result.getAnalysis()); + } } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTemplateController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTemplateController.java index 699477e..d775f19 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTemplateController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTemplateController.java @@ -22,6 +22,11 @@ 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; +import org.springframework.http.MediaType; +import org.dromara.common.excel.core.DefaultExcelListener; +import org.springframework.web.multipart.MultipartFile; +import org.dromara.common.excel.core.ExcelResult; +import org.springframework.beans.BeanUtils; /** * 检测模板主 @@ -51,7 +56,7 @@ public class QcInspectionTemplateController extends BaseController { * 导出检测模板主列表 */ @SaCheckPermission("qms:qcInspectionTemplate:export") - @Log(title = "检测模板主", businessType = BusinessType.EXPORT) + @Log(title = "检测模板主表", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(QcInspectionTemplateBo bo, HttpServletResponse response) { List list = qcInspectionTemplateService.queryList(bo); @@ -62,7 +67,7 @@ public class QcInspectionTemplateController extends BaseController { * 导出检测模板主列表模板(无任何数据) */ @SaCheckPermission("qms:qcInspectionTemplate:export") - @Log(title = "检测模板主", businessType = BusinessType.EXPORT) + @Log(title = "检测模板主表", businessType = BusinessType.EXPORT) @PostMapping("/exportTemplate") public void exportTemplate(HttpServletResponse response) { List list = new ArrayList<>(); @@ -85,7 +90,7 @@ public class QcInspectionTemplateController extends BaseController { * 新增检测模板主 */ @SaCheckPermission("qms:qcInspectionTemplate:add") - @Log(title = "检测模板主", businessType = BusinessType.INSERT) + @Log(title = "检测模板主表", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody QcInspectionTemplateBo bo) { @@ -96,7 +101,7 @@ public class QcInspectionTemplateController extends BaseController { * 修改检测模板主 */ @SaCheckPermission("qms:qcInspectionTemplate:edit") - @Log(title = "检测模板主", businessType = BusinessType.UPDATE) + @Log(title = "检测模板主表", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody QcInspectionTemplateBo bo) { @@ -109,7 +114,7 @@ public class QcInspectionTemplateController extends BaseController { * @param templateIds 主键串 */ @SaCheckPermission("qms:qcInspectionTemplate:remove") - @Log(title = "检测模板主", businessType = BusinessType.DELETE) + @Log(title = "检测模板主表", businessType = BusinessType.DELETE) @DeleteMapping("/{templateIds}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] templateIds) { @@ -126,4 +131,27 @@ public class QcInspectionTemplateController extends BaseController { List list = qcInspectionTemplateService.queryList(bo); return R.ok(list); } + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + @SaCheckPermission("qms:qcInspectionTemplate:add") + @Log(title = "检测模板主表", businessType = BusinessType.IMPORT) + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), QcInspectionTemplateVo.class, new DefaultExcelListener<>(true)); + int successCount = 0; + for (QcInspectionTemplateVo vo : result.getList()) { + QcInspectionTemplateBo bo = new QcInspectionTemplateBo(); + BeanUtils.copyProperties(vo, bo); + if (qcInspectionTemplateService.insertByBo(bo)) { + successCount++; + } + } + return R.ok("导入成功: " + successCount + " 条" + result.getAnalysis()); + } + } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTypeController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTypeController.java index 94cf820..1aab5bb 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTypeController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcInspectionTypeController.java @@ -7,6 +7,8 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.excel.core.ExcelResult; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -22,6 +24,11 @@ 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; +import org.springframework.http.MediaType; +import org.dromara.common.excel.core.DefaultExcelListener; +import org.springframework.web.multipart.MultipartFile; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; /** * 检测类型 @@ -32,6 +39,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; */ @Validated @RequiredArgsConstructor +@Slf4j @RestController @RequestMapping("/qcInspectionType") public class QcInspectionTypeController extends BaseController { @@ -126,4 +134,29 @@ public class QcInspectionTypeController extends BaseController { List list = qcInspectionTypeService.queryList(bo); return R.ok(list); } + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + @SaCheckPermission("qms:qcInspectionType:add") + @Log(title = "检测类型", businessType = BusinessType.IMPORT) + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), QcInspectionTypeVo.class, new DefaultExcelListener<>(true)); + int successCount = 0; + for (QcInspectionTypeVo vo : result.getList()) { + QcInspectionTypeBo bo = new QcInspectionTypeBo(); + BeanUtils.copyProperties(vo, bo); + if (qcInspectionTypeService.insertByBo(bo)) { + successCount++; + } + } + return R.ok("导入成功: " + successCount + " 条" + result.getAnalysis()); + } + + } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcTemplateItemController.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcTemplateItemController.java index 2b6d81d..6c22708 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcTemplateItemController.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/controller/QcTemplateItemController.java @@ -6,6 +6,10 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.excel.core.DefaultExcelListener; +import org.dromara.common.excel.core.ExcelResult; +import org.springframework.beans.BeanUtils; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -21,6 +25,7 @@ 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; +import org.springframework.web.multipart.MultipartFile; /** * 检测模板子表 @@ -114,4 +119,22 @@ public class QcTemplateItemController extends BaseController { List list = qcTemplateItemService.queryList(bo); return R.ok(list); } + + @SaCheckPermission("qms:qcTemplateItem:add") + @Log(title = "检测模板子表", businessType = BusinessType.IMPORT) + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), QcTemplateItemVo.class, new DefaultExcelListener<>(true)); + int successCount = 0; + for (QcTemplateItemVo vo : result.getList()) { + QcTemplateItemBo bo = new QcTemplateItemBo(); + BeanUtils.copyProperties(vo, bo); + if (qcTemplateItemService.insertByBo(bo)) { + successCount++; + } + } + return R.ok("导入成功: " + successCount + " 条" + result.getAnalysis()); + } + + } diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionResult.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionResult.java index 5dd8b00..a3bd304 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionResult.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/QcInspectionResult.java @@ -39,7 +39,7 @@ public class QcInspectionResult extends TenantEntity { private Long itemId; /** - * 检测结果(0合格,1不合格) + * 检测结果(0合格,1不合格,2未判定) */ private Long detectResult; diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionResultBo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionResultBo.java index ec982c4..c71db89 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionResultBo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/bo/QcInspectionResultBo.java @@ -38,7 +38,7 @@ public class QcInspectionResultBo extends BaseEntity { private Long itemId; /** - * 检测结果(0合格,1不合格) + * 检测结果(0合格,1不合格,2未判定) */ private Long detectResult; diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java index 02ddc41..04674d4 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemCategoryVo.java @@ -31,7 +31,7 @@ public class QcInspectionItemCategoryVo implements Serializable { /** * 检测项类别主键 */ - @ExcelProperty(value = "检测项类别主键") +// @ExcelProperty(value = "检测项类别主键") private Long categoryId; /** diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemVo.java index 3da4c12..6cc86fd 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionItemVo.java @@ -31,7 +31,7 @@ public class QcInspectionItemVo implements Serializable { /** * 检测项主键 */ - @ExcelProperty(value = "检测项主键") +// @ExcelProperty(value = "检测项主键") private Long itemId; /** diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionMainVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionMainVo.java index b9f482b..a1df382 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionMainVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionMainVo.java @@ -35,7 +35,7 @@ public class QcInspectionMainVo implements Serializable { /** * 质检主键 */ - @ExcelProperty(value = "质检主键") +// @ExcelProperty(value = "质检主键") private Long inspectionId; /** diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionResultVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionResultVo.java index 45e05bd..8aa4c9b 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionResultVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionResultVo.java @@ -48,7 +48,7 @@ public class QcInspectionResultVo implements Serializable { private Long itemId; /** - * 检测结果(0合格,1不合格) + * 检测结果(0合格,1不合格,2未判定) */ @ExcelProperty(value = "检测结果", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "qc_result") diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTemplateVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTemplateVo.java index 321bed6..882fc67 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTemplateVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTemplateVo.java @@ -31,7 +31,7 @@ public class QcInspectionTemplateVo implements Serializable { /** * 模板主键 */ - @ExcelProperty(value = "模板主键") +// @ExcelProperty(value = "模板主键") private Long templateId; /** diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTypeVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTypeVo.java index 85a9c63..444e501 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTypeVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcInspectionTypeVo.java @@ -31,7 +31,7 @@ public class QcInspectionTypeVo implements Serializable { /** * 检测类型主键 */ - @ExcelProperty(value = "检测类型主键") +// @ExcelProperty(value = "检测类型主键") private Long typeId; /** diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcTemplateItemVo.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcTemplateItemVo.java index 6e7bd13..9a2f36a 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcTemplateItemVo.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/domain/vo/QcTemplateItemVo.java @@ -34,7 +34,7 @@ public class QcTemplateItemVo implements Serializable { /** * 模板子表主键 */ - @ExcelProperty(value = "模板子表主键") +// @ExcelProperty(value = "模板子表主键") private Long templateItemId; /** diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java index ab684b3..39efa05 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionItemCategoryServiceImpl.java @@ -1,6 +1,5 @@ package org.dromara.qms.service.impl; -import org.apache.commons.lang3.ObjectUtils; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -15,10 +14,11 @@ 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; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; /** * 检测项类别Service业务层处理 @@ -89,7 +89,7 @@ public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCat // 获取父节点信息 QcInspectionItemCategoryVo query = baseMapper.selectVoById(bo.getParentId()); - if (ObjectUtils.isNotEmpty(query)) { + if (!ObjectUtils.isEmpty(query)) { //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors add.setAncestors(query.getAncestors() + "," + bo.getParentId()); }else{ @@ -123,6 +123,29 @@ public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCat */ private void validEntityBeforeSave(QcInspectionItemCategory entity){ //TODO 做一些数据校验,如唯一约束 + + if (StringUtils.isNotBlank(entity.getCategoryCode())) { + QcInspectionItemCategoryBo query = new QcInspectionItemCategoryBo(); + query.setCategoryCode(entity.getCategoryCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + QcInspectionItemCategory baseQcInspectionItemCategory = baseMapper.selectOne(lqw); + if (!ObjectUtils.isEmpty(baseQcInspectionItemCategory) + && !baseQcInspectionItemCategory.getCategoryId().equals(entity.getCategoryId())) { + throw new ServiceException("编码已存在"); + } + } + + if (StringUtils.isNotBlank(entity.getCategoryName())) { + QcInspectionItemCategoryBo query = new QcInspectionItemCategoryBo(); + query.setCategoryName(entity.getCategoryName()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + QcInspectionItemCategory baseQcInspectionItemCategory = baseMapper.selectOne(lqw); + if (!ObjectUtils.isEmpty(baseQcInspectionItemCategory) + && !baseQcInspectionItemCategory.getCategoryId().equals(entity.getCategoryId())) { + throw new ServiceException("名称已存在"); + } + } + } /** @@ -133,6 +156,7 @@ public class QcInspectionItemCategoryServiceImpl implements IQcInspectionItemCat * @return 是否删除成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionTypeServiceImpl.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionTypeServiceImpl.java index 0c2c7a9..8b304a8 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionTypeServiceImpl.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcInspectionTypeServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.qms.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -15,6 +16,7 @@ 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 org.springframework.util.ObjectUtils; import java.util.List; import java.util.Map; @@ -117,6 +119,29 @@ public class QcInspectionTypeServiceImpl implements IQcInspectionTypeService { */ private void validEntityBeforeSave(QcInspectionType entity){ //TODO 做一些数据校验,如唯一约束 + + if (StringUtils.isNotBlank(entity.getTypeCode())) { + QcInspectionTypeBo query = new QcInspectionTypeBo(); + query.setTypeCode(entity.getTypeCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + QcInspectionType baseQcInspectionType = baseMapper.selectOne(lqw); + if (!ObjectUtils.isEmpty(baseQcInspectionType) + && !baseQcInspectionType.getTypeId().equals(entity.getTypeId())) { + throw new ServiceException("编码已存在"); + } + } + + if (StringUtils.isNotBlank(entity.getTypeName())) { + QcInspectionTypeBo query = new QcInspectionTypeBo(); + query.setTypeName(entity.getTypeName()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + QcInspectionType baseQcInspectionType = baseMapper.selectOne(lqw); + if (!ObjectUtils.isEmpty(baseQcInspectionType) + && !baseQcInspectionType.getTypeId().equals(entity.getTypeId())) { + throw new ServiceException("名称已存在"); + } + } + } /** diff --git a/ruoyi-modules/hwmom-qms/src/main/resources/qms新建表结构.sql b/ruoyi-modules/hwmom-qms/src/main/resources/qms新建表结构.sql index 528e652..de6ad20 100644 --- a/ruoyi-modules/hwmom-qms/src/main/resources/qms新建表结构.sql +++ b/ruoyi-modules/hwmom-qms/src/main/resources/qms新建表结构.sql @@ -29,7 +29,7 @@ CREATE TABLE qc_inspection_type ( -- 添加表备注 EXEC sp_addextendedproperty @name = N'MS_Description', - @value = N'检测类型表,其他表绑定检测类型主键来查询编码、名称、类型(字典,通过字典键值来进行一定的逻辑操作)', + @value = N'检测类型表', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'qc_inspection_type'; @@ -38,7 +38,7 @@ EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测类型主键 EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'租户号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_type',@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_type',@level2type=N'COLUMN',@level2name=N'type_code'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测类型名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_type',@level2type=N'COLUMN',@level2name=N'type_name'; -EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测类型(字典:首检 专检 自检 互检 原材料检 抽检 成品检),其他表绑定检测类型主键来查类型(通过字典键值来进行一定的逻辑操作)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_type',@level2type=N'COLUMN',@level2name=N'qc_inspection_type'; +EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测类型(字典:首检 专检 自检 互检 原材料检 抽检 成品检)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_type',@level2type=N'COLUMN',@level2name=N'qc_inspection_type'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建方式(1人工创建 2自动创建)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_type',@level2type=N'COLUMN',@level2name=N'create_method'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'创建人' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_type',@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_type',@level2type=N'COLUMN',@level2name=N'create_time'; @@ -52,6 +52,8 @@ EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'是否删除(0 CREATE TABLE qc_inspection_item_category ( category_id BIGINT PRIMARY KEY, -- 检测项类别主键 tenant_id VARCHAR(32), -- 租户号 + parent_id BIGINT, -- 父级ID + ancestors VARCHAR(500), -- 祖级列表 category_code VARCHAR(30) NOT NULL, -- 检测项类别编码 category_name VARCHAR(255) NOT NULL, -- 检测项类别名称 type_id BIGINT NULL, -- 检测单类型(关联检测类型表) @@ -73,6 +75,8 @@ EXEC sp_addextendedproperty -- 为检测项类别表字段添加中文备注 EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测项类别主键' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item_category',@level2type=N'COLUMN',@level2name=N'category_id'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'租户号' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item_category',@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_item_category',@level2type=N'COLUMN',@level2name=N'parent_id'; +EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'祖级列表' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item_category',@level2type=N'COLUMN',@level2name=N'ancestors'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测项类别编码' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item_category',@level2type=N'COLUMN',@level2name=N'category_code'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测项类别名称' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item_category',@level2type=N'COLUMN',@level2name=N'category_name'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测单类型(关联检测类型表)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_item_category',@level2type=N'COLUMN',@level2name=N'type_id'; @@ -273,13 +277,13 @@ CREATE TABLE qc_inspection_main ( material_name VARCHAR(255), -- 物料名称 process_name VARCHAR(255), -- 工序名称 station_name VARCHAR(255), -- 工位名称 - inspection_qty INT NOT NULL, -- 质检数量 - qualified_qty INT DEFAULT 0, -- 合格数 - unqualified_qty INT DEFAULT 0, -- 不合格数 + inspection_qty DECIMAL(16,2), -- 质检数量 + qualified_qty DECIMAL(16,2), -- 合格数 + unqualified_qty DECIMAL(16,2), -- 不合格数 result CHAR(1), -- 质检结果(0合格,1不合格) workshop VARCHAR(50), -- 车间 inspection_category CHAR(1 ), -- TODO:检验类别(0首检,1过程检)? - status CHAR(1) NOT NULL, -- 单据状态(0未处理,1完成) + status CHAR(1) , -- 单据状态(0未处理,1完成) inspector VARCHAR(32), -- 检测人员 shift VARCHAR(10), -- 班次 team VARCHAR(50), -- 班组 @@ -317,7 +321,7 @@ 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_main',@level2type=N'COLUMN',@level2name=N'unqualified_qty'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'质检结果(0合格/1不合格)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_main',@level2type=N'COLUMN',@level2name=N'result'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'车间' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_main',@level2type=N'COLUMN',@level2name=N'workshop'; -EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检验类别(首检/过程检)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_main',@level2type=N'COLUMN',@level2name=N'inspection_category'; +EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检验类别(首检/过程检等等)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_main',@level2type=N'COLUMN',@level2name=N'inspection_category'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'单据状态(0未处理/1完成)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_main',@level2type=N'COLUMN',@level2name=N'status'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测人员' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_main',@level2type=N'COLUMN',@level2name=N'inspector'; EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'班次' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_main',@level2type=N'COLUMN',@level2name=N'shift'; @@ -342,7 +346,7 @@ CREATE TABLE qc_inspection_result ( tenant_id VARCHAR(32), -- 租户号 inspection_id BIGINT NOT NULL, -- 关联质检主表ID item_id BIGINT NOT NULL, -- 关联检测项ID - detect_result CHAR(1), -- 检测结果(0合格,1不合格) + detect_result CHAR(1), -- 检测结果(0合格,1不合格,2未判定) detect_value DECIMAL(18,2), -- 定量检测值 spec_inspection VARCHAR(50), -- 规格质检值 problem_detail VARCHAR(500), -- 定性不合格明细 @@ -366,7 +370,7 @@ 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'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'; +EXEC sp_addextendedproperty @name=N'MS_Description', @value=N'检测结果(0合格,1不合格,2未判定)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_inspection_result',@level2type=N'COLUMN',@level2name=N'detect_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'detect_value'; 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'spec_inspection'; 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'problem_detail'; @@ -414,7 +418,7 @@ 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_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'检测类型ID' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@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'; @@ -422,15 +426,15 @@ 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_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'评审结果(0报废/1返工/2退货)' , @level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level1name=N'qc_unqualified_review',@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'; +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'create_by'; +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'create_time'; +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'update_by'; +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'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_review',@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_review',@level2type=N'COLUMN',@level2name=N'create_dept'; -- 11. 不合格品评审记录表(存储不合格品的评审历史记录)