From c18ee554cdc4fc77665a4b36015cf922d31c5b7c Mon Sep 17 00:00:00 2001 From: liaohechuan Date: Thu, 12 Dec 2024 19:34:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=88=E6=A3=80=E9=AA=8C=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E7=BB=B4=E6=8A=A4=EF=BC=89=EF=BC=9A=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../foreverwin/iep/qms/dto/ErrorMsgDTO.java | 20 ++ .../iep/qms/dto/QmsQcPlanImportDTO.java | 15 ++ .../iep/qms/dto/QmsQcPlanImportOtherDTO.java | 187 +++++++++++++ .../qms/controller/QmsQcPlanController.java | 41 +++ .../iep/qms/service/QmsQcPlanService.java | 11 + .../service/impl/QmsQcPlanServiceImpl.java | 250 ++++++++++++++++-- .../iep/qms/mapper/QmsQcPlanMapper.java | 7 + .../resources/qms/mapper/QmsQcPlanMapper.xml | 29 ++ 8 files changed, 539 insertions(+), 21 deletions(-) create mode 100644 qms-api/src/main/java/com/foreverwin/iep/qms/dto/ErrorMsgDTO.java create mode 100644 qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportDTO.java create mode 100644 qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportOtherDTO.java diff --git a/qms-api/src/main/java/com/foreverwin/iep/qms/dto/ErrorMsgDTO.java b/qms-api/src/main/java/com/foreverwin/iep/qms/dto/ErrorMsgDTO.java new file mode 100644 index 0000000..a28a6fd --- /dev/null +++ b/qms-api/src/main/java/com/foreverwin/iep/qms/dto/ErrorMsgDTO.java @@ -0,0 +1,20 @@ +package com.foreverwin.iep.qms.dto; + +import lombok.Data; + +import java.util.List; + +/** + * 导入异常DTO + */ +@Data +public class ErrorMsgDTO { + /** + * 行号 + */ + private int lineNum; + /** + * 错误信息 + */ + private List errors; +} diff --git a/qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportDTO.java b/qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportDTO.java new file mode 100644 index 0000000..3eba7bb --- /dev/null +++ b/qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportDTO.java @@ -0,0 +1,15 @@ +package com.foreverwin.iep.qms.dto; + +import lombok.Data; + +/** + * 检验计划信息导入DTO + */ +@Data +public class QmsQcPlanImportDTO extends QmsQcPlanImportOtherDTO{ + + /** + * 使用对象的主键(qms_qc_plan_target) + */ + private String targetBo; +} diff --git a/qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportOtherDTO.java b/qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportOtherDTO.java new file mode 100644 index 0000000..2810db7 --- /dev/null +++ b/qms-api/src/main/java/com/foreverwin/iep/qms/dto/QmsQcPlanImportOtherDTO.java @@ -0,0 +1,187 @@ +package com.foreverwin.iep.qms.dto; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 检验计划信息导入DTO + */ +@Data +public class QmsQcPlanImportOtherDTO { + + /** + * 检验类型(qms_qc_plan) + */ + @ExcelProperty(value="检验类型") + private String inspecType; + + /** + * 检验细类(qms_qc_plan) + */ + @ExcelProperty(value="检验细类") + private String qcSubCategories; + + /** + * 检验计划编号(qms_qc_plan) + */ + @ExcelProperty(value="检验计划编号") + private String qcPlan; + + /** + * 检验计划说明(qms_qc_plan) + */ + @ExcelProperty(value="检验计划名称") + private String qcPlanDescription; + + /** + * 工序名称(qms_qc_plan_target) + */ + @ExcelProperty(value="工序名称") + private String operation; + + /** + * 产品编码(物料编码)(qms_qc_plan_target) + */ + @ExcelProperty(value="产品编码(物料编码)") + private String item; + + /** + * 产品名称(物料名称)(qms_qc_plan_target) + */ + @ExcelProperty(value="产品名称(物料名称)") + private String itemDescription; + + /** + * 检验频率(qms_qc_plan) + */ + @ExcelProperty(value="检验频率") + private String inspecNo; + + /** + * 抽样规则(qms_qc_plan) + */ + @ExcelProperty(value="抽样规则") + private String samplePlan; + + /** + * 检验人员群组(qms_qc_plan) + */ + @ExcelProperty(value="检验人员群组") + private String userGroup; + + /** + * 复核人员群组(qms_qc_plan) + */ + @ExcelProperty(value="复核人员群组") + private String checkUserGroup; + + /** + * 版本(qms_qc_plan) + */ + @ExcelProperty(value="版本号") + private String revision; + + /** + * 当前版本(qms_qc_plan) + */ + @ExcelProperty(value="当前版本") + private String currentRevision; + + /** + * 检验项目编号(qms_qc_item、qms_qc_plan_detail) + */ + @ExcelProperty(value="检验项目编号") + private String qcItem; + + /** + * 检验项目编号说明(qms_qc_item) + */ + @ExcelProperty(value="检验项目编号描述") + private String qcItemDescription; + + /** + * 品管方式(qms_qc_item) + */ + @ExcelProperty(value="品管方式") + private String itemType; + + /** + * 计量单位(qms_qc_item) + */ + @ExcelProperty(value="单位") + private String units; + + /** + * 规格管控(qms_qc_item) + */ + @ExcelProperty(value="规格管控") + private String controlMode; + + /** + * 检验方法说明(qms_qc_plan_detail) + */ + @ExcelProperty(value="检验说明(长文本)") + private String inspInstructions; + + /** + * 测试次数(qms_qc_plan_detail) + */ + @ExcelProperty(value="测试次数") + private BigDecimal testTimes; + + /** + * 均值计算判定(qms_qc_plan_detail) + */ + @ExcelProperty(value="均值计算判定(Y/N)") + private String avgJudge; + + /** + * 规格下限(qms_qc_plan_detail) + */ + @ExcelProperty(value="规格下限") + private BigDecimal minValue; + + /** + * 中心(qms_qc_plan_detail) + */ + @ExcelProperty(value="规格中心(目标值)") + private BigDecimal centerValue; + + /** + * 规格上限(qms_qc_plan_detail) + */ + @ExcelProperty(value="规格上限") + private BigDecimal maxValue; + + /** + * 内文(qms_qc_plan_detail) + */ + @ExcelProperty(value="文本") + private String content; + + /** + * 选项集说明(qms_qc_item_type_text_sub) + */ + @ExcelProperty(value="文本选项集描述") + private String textGroupDesc; + + /** + * 选项集编号(qms_qc_item_type_text_sub、qms_qc_plan_detail) + */ + @ExcelProperty(value="文本选项集编号") + private String textGroupNo; + + /** + * 是否必填(Y/N,是/否,默认Y)(qms_qc_plan_detail) + */ + @ExcelProperty(value="是否必填(Y/N,是/否,默认Y)") + private String isRequired; + + /** + * 需上传照片(Y/N,是/否,默认N)(qms_qc_plan_detail) + */ + @ExcelProperty(value="需上传照片(Y/N,是/否,默认N)") + private String photosMust; +} diff --git a/qms-core/src/main/java/com/foreverwin/iep/qms/controller/QmsQcPlanController.java b/qms-core/src/main/java/com/foreverwin/iep/qms/controller/QmsQcPlanController.java index 8f2fcd1..e6b9af3 100644 --- a/qms-core/src/main/java/com/foreverwin/iep/qms/controller/QmsQcPlanController.java +++ b/qms-core/src/main/java/com/foreverwin/iep/qms/controller/QmsQcPlanController.java @@ -1,10 +1,14 @@ package com.foreverwin.iep.qms.controller; import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.foreverwin.iep.common.base.FrontPage; import com.foreverwin.iep.common.utils.HandleBoProcessor; +import com.foreverwin.iep.qms.dto.ErrorMsgDTO; +import com.foreverwin.iep.qms.dto.QmsQcPlanImportDTO; +import com.foreverwin.iep.qms.dto.QmsQcPlanImportOtherDTO; import com.foreverwin.iep.qms.entity.QmsQcPlan; import com.foreverwin.iep.qms.entity.ZQmsQcPlanItf; import com.foreverwin.iep.qms.service.QmsQcPlanService; @@ -17,6 +21,13 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; /** * 检验计划 @@ -152,4 +163,34 @@ public class QmsQcPlanController { public R saveOrUpdateSapExaminePlan(@RequestBody ZQmsQcPlanItf zQmsQcPlanItf) { return R.ok(qmsQcPlanService.saveOrUpdateSapExaminePlan(zQmsQcPlanItf)); } + + /** + * 下载检验计划信息模板 + * @throws Exception + */ + @ResponseBody + @GetMapping("/downloadQcPlanTemplate") + public void downloadQcPlanTemplate() throws Exception { + String fileName = "检验计划信息"; + String encodedFileName = URLEncoder.encode(fileName, "UTF-8"); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletResponse response = attributes.getResponse(); + response.setCharacterEncoding("utf-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + encodedFileName + ".xlsx"); + // 这里需要设置不关闭流 + List qmsQcPlanImportOtherDTOList = new ArrayList<>(); + EasyExcel.write(response.getOutputStream(), QmsQcPlanImportOtherDTO.class).autoCloseStream(Boolean.FALSE).sheet(fileName).doWrite(qmsQcPlanImportOtherDTOList); + } + + /** + * 检验计划信息导入 + * @param qmsQcPlanImportDTOList 检验计划信息导入DTO + * @return + */ + @ApiOperation(value = "检验计划信息导入", notes = "检验计划信息导入") + @PostMapping("/doImport") + public R> doImport(@RequestBody List qmsQcPlanImportDTOList){ + return R.ok(qmsQcPlanService.doImport(qmsQcPlanImportDTOList)); + } } diff --git a/qms-core/src/main/java/com/foreverwin/iep/qms/service/QmsQcPlanService.java b/qms-core/src/main/java/com/foreverwin/iep/qms/service/QmsQcPlanService.java index 7bf79cb..d4511a7 100644 --- a/qms-core/src/main/java/com/foreverwin/iep/qms/service/QmsQcPlanService.java +++ b/qms-core/src/main/java/com/foreverwin/iep/qms/service/QmsQcPlanService.java @@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.foreverwin.iep.common.base.FrontPage; import com.foreverwin.iep.qms.domain.UserGroup; +import com.foreverwin.iep.qms.dto.ErrorMsgDTO; +import com.foreverwin.iep.qms.dto.QmsQcPlanImportDTO; import com.foreverwin.iep.qms.entity.QmsQcPlan; import com.foreverwin.iep.qms.entity.ZQmsQcPlanItf; +import java.util.List; + /** * 檢驗計劃服務介面 *

@@ -73,4 +77,11 @@ public interface QmsQcPlanService extends IService { IPage getDistinctQcPlan(FrontPage page, String qcPlan); String saveOrUpdateSapExaminePlan(ZQmsQcPlanItf zQmsQcPlanItf); + + /** + * 检验计划信息导入 + * @param qmsQcPlanImportDTOList 检验计划信息导入DTO + * @return + */ + List doImport(List qmsQcPlanImportDTOList); } \ No newline at end of file diff --git a/qms-core/src/main/java/com/foreverwin/iep/qms/service/impl/QmsQcPlanServiceImpl.java b/qms-core/src/main/java/com/foreverwin/iep/qms/service/impl/QmsQcPlanServiceImpl.java index 98812b2..cc5d76d 100644 --- a/qms-core/src/main/java/com/foreverwin/iep/qms/service/impl/QmsQcPlanServiceImpl.java +++ b/qms-core/src/main/java/com/foreverwin/iep/qms/service/impl/QmsQcPlanServiceImpl.java @@ -17,15 +17,21 @@ import com.foreverwin.iep.common.spc.SpcInvoke; import com.foreverwin.iep.common.spc.constant.SpcMethod; import com.foreverwin.iep.common.utils.HandleBoProcessor; import com.foreverwin.iep.common.utils.SidUtils; +import com.foreverwin.iep.integration.constant.Msg; +import com.foreverwin.iep.prd.domain.GenerateNextNumberRequest; +import com.foreverwin.iep.prd.domain.GenerateNextNumberResponse; import com.foreverwin.iep.prd.domain.SaveCustomDataRequest; import com.foreverwin.iep.prd.entity.Item; import com.foreverwin.iep.prd.entity.Operation; import com.foreverwin.iep.prd.entity.ProductConfig; import com.foreverwin.iep.prd.entity.ProductOp; import com.foreverwin.iep.prd.feign.RemoteCustomFieldsService; +import com.foreverwin.iep.prd.feign.RemoteNextNumberService; import com.foreverwin.iep.prd.mapper.ItemMapper; import com.foreverwin.iep.prd.mapper.OperationMapper; import com.foreverwin.iep.qms.domain.UserGroup; +import com.foreverwin.iep.qms.dto.ErrorMsgDTO; +import com.foreverwin.iep.qms.dto.QmsQcPlanImportDTO; import com.foreverwin.iep.qms.dto.QmsQcPlanTargetDTO; import com.foreverwin.iep.qms.entity.*; import com.foreverwin.iep.qms.mapper.QmsQcPlanDetailMapper; @@ -35,12 +41,14 @@ import com.foreverwin.iep.qms.mapper.QmsSamplePlanMapper; import com.foreverwin.iep.qms.service.*; import com.foreverwin.iep.sys.entity.SystemTransactionLog; import com.foreverwin.iep.sys.feign.RemoteSystemTransactionLogService; +import com.foreverwin.mom.admin.api.entity.SysDictItem; import com.foreverwin.mom.admin.api.entity.SysRole; import com.foreverwin.mom.admin.api.feign.RemoteParamService; import com.foreverwin.mom.admin.api.feign.RemoteRoleService; import com.foreverwin.mom.common.core.constant.SecurityConstants; import com.foreverwin.mom.common.core.exception.BusinessException; import com.foreverwin.mom.common.core.util.I18nUtil; +import com.foreverwin.mom.common.core.util.R; import com.foreverwin.mom.common.data.tenant.TenantContextHolder; import com.foreverwin.mom.common.security.util.SecurityUtils; import lombok.AllArgsConstructor; @@ -53,6 +61,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -95,6 +104,8 @@ public class QmsQcPlanServiceImpl extends ServiceImpl strList = new ArrayList<>(Arrays.asList("0", "1")); @@ -414,7 +425,7 @@ public class QmsQcPlanServiceImpl extends ServiceImpl doImport(List qmsQcPlanImportDTOList) { + //参数初始化 + String site = TenantContextHolder.getTenantId(); + List errorMsgDTOList = new ArrayList<>(); + // 当前登录人 + String user = SecurityUtils.getUserName(); + // 当前时间 + LocalDateTime nowTime = LocalDateTime.now(); + + if (CollectionUtils.isNotEmpty(qmsQcPlanImportDTOList)) { + int rowNum = 1; + // 需要生成检验计划编号的数组 + List qcPlanList = new ArrayList<>(); + + //字典-检验细类 + List qcSubCategoriesSysDictItemList = baseMapper.selectSysDictItemList(site, "qc_sub_categories"); + // 工序 + List operationList = operationMapper.selectList(Wrappers.lambdaQuery() + .eq(Operation::getSite, site) + ); + + for (QmsQcPlanImportDTO qmsQcPlanImportDTO : qmsQcPlanImportDTOList) { + rowNum++; + ErrorMsgDTO errorMsgDTO = new ErrorMsgDTO(); + List errors = new ArrayList<>(); + + //转化字典 + if(CollectionUtils.isNotEmpty(qcSubCategoriesSysDictItemList) && StrUtil.isNotBlank(qmsQcPlanImportDTO.getQcSubCategories())) { + //字典-检验细类 + Optional opt = qcSubCategoriesSysDictItemList.stream().filter(r -> qmsQcPlanImportDTO.getQcSubCategories().equals(r.getLabel())).findFirst(); + if(opt.isPresent()) { + qmsQcPlanImportDTO.setQcSubCategories(opt.get().getItemValue()); + } else { + errors.add("检验细类【"+qmsQcPlanImportDTO.getQcSubCategories()+"】在iMES系统中字典管理[qc_sub_categories]未匹配到!"); + } + } + + // 转化工序 + if (CollectionUtils.isNotEmpty(operationList) && StrUtil.isNotBlank(qmsQcPlanImportDTO.getOperation())) { + Optional opt = operationList.stream().filter(r -> qmsQcPlanImportDTO.getOperation().equals(r.getDescription())).findFirst(); + if(opt.isPresent()) { + qmsQcPlanImportDTO.setOperation(opt.get().getOperation()); + } else { + errors.add("工序【"+qmsQcPlanImportDTO.getOperation()+"】在iMES系统中未找到!"); + } + } + + // 校验物料是否存在 + Item item = itemMapper.selectOne(Wrappers.lambdaQuery() + .eq(Item::getSite, site) + .eq(Item::getItem, qmsQcPlanImportDTO.getItem()) + .eq(Item::getCurrentRevision, "Y") + ); + if (item == null) { + errors.add("物料【"+qmsQcPlanImportDTO.getItem()+"】在iMES系统中未找到当前版本!"); + } + + if (errors.size() > 0) { + errorMsgDTO.setLineNum(rowNum); + errorMsgDTO.setErrors(errors); + errorMsgDTOList.add(errorMsgDTO); + } else { + // 通过检验细类+工序+物料确定唯一计划 + String targetBo = ProductOp.genHandle(ProductConfig.genHandle(item.getHandle()), Operation.genHandle(site, qmsQcPlanImportDTO.getOperation(), "#")); + qmsQcPlanImportDTO.setTargetBo(targetBo); + List qmsQcPlanList = baseMapper.selectListByTarget(site, qmsQcPlanImportDTO.getQcSubCategories(), targetBo); + if (CollectionUtils.isNotEmpty(qmsQcPlanList)) { + qmsQcPlanImportDTO.setQcPlan(qmsQcPlanList.get(0).getQcPlan()); + } else { + // 检验计划不存在,则需要创建 + qcPlanList.add(qmsQcPlanImportDTO.getQcSubCategories()+qmsQcPlanImportDTO.getItem()+qmsQcPlanImportDTO.getOperation()+rowNum); + } + } + } + + //无报错则保存 + if (errorMsgDTOList.size() == 0) { + // 调用编号规则 + List qcPlanCodeList = new ArrayList<>(); + if (qcPlanList.size() > 0) { + qcPlanCodeList = this.getNextNumber(site, "QC_PLAN_CODE", qcPlanList.size()); + } + + rowNum = 1; + int seq = 0; + // 检验计划保存列表 + List qmsQcPlanList = new ArrayList<>(); + // 检验计划明细表保存列表 + List qmsQcPlanDetailList = new ArrayList<>(); + // 检验计划使用对象保存列表 + List qmsQcPlanTargetList = new ArrayList<>(); + for (QmsQcPlanImportDTO qmsQcPlanImportDTO : qmsQcPlanImportDTOList) { + rowNum++; + if (qcPlanList.contains(qmsQcPlanImportDTO.getQcSubCategories()+qmsQcPlanImportDTO.getItem()+qmsQcPlanImportDTO.getOperation()+rowNum)) { + // 包含需要创建检验计划编号 + qmsQcPlanImportDTO.setQcPlan(qcPlanCodeList.get(seq)); + seq++; + } + + // 检验计划 + QmsQcPlan qmsQcPlan = baseMapper.selectOne(Wrappers.lambdaQuery() + .eq(QmsQcPlan::getSite, site) + .eq(QmsQcPlan::getQcPlan, qmsQcPlanImportDTO.getQcPlan()) + .eq(QmsQcPlan::getCurrentRevision, "Y") + ); + if (qmsQcPlan == null) { + qmsQcPlan = new QmsQcPlan(); + qmsQcPlan.setHandle(QmsQcPlan.genHandle(site, qmsQcPlanImportDTO.getQcPlan(), qmsQcPlanImportDTO.getRevision())); + qmsQcPlan.setSite(site); + qmsQcPlan.setQcPlan(qmsQcPlanImportDTO.getQcPlan()); + qmsQcPlan.setRevision(qmsQcPlanImportDTO.getRevision()); + qmsQcPlan.setCurrentRevision("Y"); + qmsQcPlan.setDateCreate(nowTime); + qmsQcPlan.setCreator(user); + } + qmsQcPlan.setDescription(qmsQcPlanImportDTO.getQcPlanDescription()); + qmsQcPlan.setInspecType(qmsQcPlanImportDTO.getInspecType()); + qmsQcPlan.setInspecFreqBo(QmsInspecFreq.genHandle(site, qmsQcPlanImportDTO.getInspecNo())); + qmsQcPlan.setUserGroup(qmsQcPlanImportDTO.getUserGroup()); + qmsQcPlan.setDateUpdate(nowTime); + qmsQcPlan.setUpdater(user); + qmsQcPlan.setQcSubCategories(qmsQcPlanImportDTO.getQcSubCategories()); + qmsQcPlan.setCheckUserGroup(qmsQcPlanImportDTO.getCheckUserGroup()); + qmsQcPlanList.add(qmsQcPlan); + + // 检验计划明细表 + String qmsQcPlanDetailBo = QmsQcPlanDetail.genHandle(qmsQcPlan.getHandle(), QmsQcItem.genHandle(site, qmsQcPlanImportDTO.getQcItem())); + QmsQcPlanDetail qmsQcPlanDetail = qmsQcPlanDetailService.getById(qmsQcPlanDetailBo); + if (qmsQcPlanDetail == null) { + qmsQcPlanDetail = new QmsQcPlanDetail(); + qmsQcPlanDetail.setHandle(qmsQcPlanDetailBo); + qmsQcPlanDetail.setQcPlanBo(qmsQcPlan.getHandle()); + qmsQcPlanDetail.setSeq("1"); + qmsQcPlanDetail.setQcItemBo(QmsQcItem.genHandle(site, qmsQcPlanImportDTO.getQcItem())); + } + qmsQcPlanDetail.setMaxValue(qmsQcPlanImportDTO.getMaxValue()); + qmsQcPlanDetail.setMinValue(qmsQcPlanImportDTO.getMinValue()); + qmsQcPlanDetail.setCenterValue(qmsQcPlanImportDTO.getCenterValue()); + qmsQcPlanDetail.setContent(qmsQcPlanImportDTO.getContent()); + qmsQcPlanDetail.setInspInstructions(qmsQcPlanImportDTO.getInspInstructions()); + qmsQcPlanDetail.setTestTimes(qmsQcPlanImportDTO.getTestTimes()); + qmsQcPlanDetail.setTextGroupNo(qmsQcPlanImportDTO.getTextGroupNo()); + qmsQcPlanDetail.setIsRequired(qmsQcPlanImportDTO.getIsRequired()); + qmsQcPlanDetail.setPhotosMust(qmsQcPlanImportDTO.getPhotosMust()); + qmsQcPlanDetail.setAvgJudge(qmsQcPlanImportDTO.getAvgJudge()); + qmsQcPlanDetailList.add(qmsQcPlanDetail); + + // 检验计划使用对象 + String qmsQcPlanTargetBo = QmsQcPlanTarget.genHandle(site, qmsQcPlan.getQcPlan(), qmsQcPlanImportDTO.getTargetBo(), "0"); + QmsQcPlanTarget qmsQcPlanTarget = qmsQcPlanTargetService.getById(qmsQcPlanTargetBo); + if (qmsQcPlanTarget == null) { + qmsQcPlanTarget = new QmsQcPlanTarget(); + qmsQcPlanTarget.setHandle(qmsQcPlanTargetBo); + qmsQcPlanTarget.setSite(site); + qmsQcPlanTarget.setQcPlan(qmsQcPlan.getQcPlan()); + qmsQcPlanTarget.setSeq("1"); + qmsQcPlanTarget.setTargetBo(qmsQcPlanImportDTO.getTargetBo()); + qmsQcPlanTarget.setDateCreate(nowTime); + qmsQcPlanTarget.setCreator(user); + } + qmsQcPlanTarget.setDateUpdate(nowTime); + qmsQcPlanTarget.setUpdater(user); + qmsQcPlanTargetList.add(qmsQcPlanTarget); + } + + super.saveOrUpdateBatch(qmsQcPlanList); + qmsQcPlanDetailService.saveOrUpdateBatch(qmsQcPlanDetailList); + qmsQcPlanTargetService.saveOrUpdateBatch(qmsQcPlanTargetList); + } + } + + return errorMsgDTOList; + } + + /** + * 获取编号规则 + * @param site 站点 + * @param numberConstant 编号类型 + * @param number 需要生成的数量 + * @return + */ + private List getNextNumber(String site, String numberConstant, int number) { + GenerateNextNumberRequest generateNextNumberRequest = new GenerateNextNumberRequest(); + generateNextNumberRequest.setSite(site); + generateNextNumberRequest.setNextNumberType(numberConstant); + generateNextNumberRequest.setNumberOfValues(number); + R generate = nextNumberService.generate(generateNextNumberRequest, SecurityConstants.FROM_IN); + GenerateNextNumberResponse data = generate.getData(); + return data.getIds(); + } +} \ No newline at end of file diff --git a/qms-db/src/main/java/com/foreverwin/iep/qms/mapper/QmsQcPlanMapper.java b/qms-db/src/main/java/com/foreverwin/iep/qms/mapper/QmsQcPlanMapper.java index c5eafbe..8d7c352 100644 --- a/qms-db/src/main/java/com/foreverwin/iep/qms/mapper/QmsQcPlanMapper.java +++ b/qms-db/src/main/java/com/foreverwin/iep/qms/mapper/QmsQcPlanMapper.java @@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.foreverwin.iep.common.base.FrontPage; import com.foreverwin.iep.qms.domain.UserGroup; import com.foreverwin.iep.qms.entity.QmsQcPlan; +import com.foreverwin.mom.admin.api.entity.SysDictItem; import com.foreverwin.mom.admin.api.entity.SysRole; import com.foreverwin.mom.common.data.datascope.MomBaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 检验计划 * @@ -25,4 +28,8 @@ public interface QmsQcPlanMapper extends MomBaseMapper { IPage getListPage(FrontPage page, @Param("entity")QmsQcPlan entity); SysRole getRoleCode(@Param("site") String site, @Param("roleCode") String roleCode); + + List selectSysDictItemList(@Param("site") String site, @Param("dictType") String dictType); + + List selectListByTarget(@Param("site") String site, @Param("qcSubCategories") String qcSubCategories, @Param("targetBo") String targetBo); } diff --git a/qms-db/src/main/resources/qms/mapper/QmsQcPlanMapper.xml b/qms-db/src/main/resources/qms/mapper/QmsQcPlanMapper.xml index 2013c52..ea2af26 100644 --- a/qms-db/src/main/resources/qms/mapper/QmsQcPlanMapper.xml +++ b/qms-db/src/main/resources/qms/mapper/QmsQcPlanMapper.xml @@ -71,4 +71,33 @@ and sr.ROLE_CODE = #{roleCode} and sr.DEL_FLAG = '0' + + + + + +