檢驗計畫

This commit is contained in:
Paul 2023-06-07 09:12:02 +08:00
parent f7497fc6ce
commit 4c17a152e4
20 changed files with 862 additions and 1 deletions

View File

@ -0,0 +1,96 @@
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 产品检验计划表
*
* @author mom code generator
* @date 2023-06-06 16:41:41
*/
@Data
@TableName("qms_prod_qc_plan")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "产品检验计划表")
public class QmsProdQcPlan extends Model<QmsProdQcPlan> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键")
private String sid;
/**
* 生产点
*/
@ApiModelProperty(value="生产点")
private String site;
/**
* 生产产品
*/
@ApiModelProperty(value="生产产品")
private String item;
/**
* 工作中心
*/
@ApiModelProperty(value="工作中心")
private String workCenter;
/**
* 作业站
*/
@ApiModelProperty(value="作业站")
private String operation;
/**
* 资源
*/
@ApiModelProperty(value="资源")
private String resrce;
/**
* 检验计划
*/
@ApiModelProperty(value="检验计划")
private String qcPlan;
/**
* 版本
*/
@ApiModelProperty(value="版本")
private String qcPlanRevision;
/**
* 建立人
*/
@ApiModelProperty(value="建立人")
private String createdUser;
/**
* 建立日期
*/
@ApiModelProperty(value="建立日期")
private LocalDateTime createdDateTime;
/**
* IQC 物料
*/
@ApiModelProperty(value="IQC 物料")
private String materialNo;
}

View File

@ -0,0 +1,181 @@
/*
* Copyright (c) 2018-2025, mom All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the foreverwin.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: mom
*/
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.foreverwin.iep.common.utils.HandleBoProcessor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* 检验计划
*
* @author mom code generator
* @date 2023-06-06 16:43:15
*/
@Data
@TableName("qms_qc_plan")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "检验计划")
public class QmsQcPlan extends Model<QmsQcPlan> {
private static final long serialVersionUID = 1L;
public static final String KW_QMS_QC_PLAN_BO = "QCPlanBO";
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键")
private String handle;
/**
* 生产点
*/
@ApiModelProperty(value="生产点")
private String site;
/**
* 检验计划
*/
@ApiModelProperty(value="检验计划")
private String qcPlan;
/**
* 版本
*/
@ApiModelProperty(value="版本")
private String revision;
/**
* 当前版本
*/
@ApiModelProperty(value="当前版本")
private String currentRevision;
/**
* 检验计划说明
*/
@ApiModelProperty(value="检验计划说明")
private String description;
/**
* 检验模式
*/
@ApiModelProperty(value="检验模式")
private String qcMode;
/**
* 检验类型
*/
@ApiModelProperty(value="检验类型")
private String qcType;
/**
* 检验频率编号
*/
@ApiModelProperty(value="检验频率编号")
private String inspecNo;
/**
* 检验人员群组
*/
@ApiModelProperty(value="检验人员群组")
private String userGroup;
/**
* 建立人
*/
@ApiModelProperty(value="建立人")
private String createdUser;
/**
* 建立日期
*/
@ApiModelProperty(value="建立日期")
private LocalDateTime createdDateTime;
/**
* 镱钛SIP汇入档案组名
*/
@ApiModelProperty(value="镱钛SIP汇入档案组名")
private String sipGroupName;
/**
* 镱钛SIP汇入档案文件名
*/
@ApiModelProperty(value="镱钛SIP汇入档案文件名")
private String sipFileName;
/**
* 抛送至SPC
*/
@ApiModelProperty(value="抛送至SPC")
private String toSpc;
/**
* 修改时间
*/
@ApiModelProperty(value="修改时间")
private String modifiedUser;
/**
* 修改人员
*/
@ApiModelProperty(value="修改人员")
private LocalDateTime modifiedDateTime;
/**
* 检验分类
*/
@ApiModelProperty(value="检验分类")
private String qcClass;
/**
* 卡控出站
*/
@ApiModelProperty(value="卡控出站")
private String checkOutControl;
@TableField(exist = false)
private List<QmsQcPlanDetail> qcPlanDetailList;
@TableField(exist = false)
private List<QmsProdQcPlan> workCenterList;
@TableField(exist = false)
private List<QmsProdQcPlan> resourceList;
@TableField(exist = false)
private List<QmsProdQcPlan> itemList;
public static String genHandle( String site, String qcPlan, String revision ) {
return HandleBoProcessor.genHandle(KW_QMS_QC_PLAN_BO, site, qcPlan, revision);
}
}

View File

@ -1,15 +1,19 @@
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.foreverwin.iep.common.utils.HandleBoProcessor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 检验计划明细表
@ -24,7 +28,7 @@ import java.math.BigDecimal;
public class QmsQcPlanDetail extends Model<QmsQcPlanDetail> {
private static final long serialVersionUID = 1L;
public static final String KW_QMS_QC_PLAN_DETAIL_BO = "QmsQcPlanDetailBO";
public static final String KW_QMS_QC_PLAN_DETAIL_BO = "QcPlanDetailBO";
/**
@ -99,5 +103,10 @@ public class QmsQcPlanDetail extends Model<QmsQcPlanDetail> {
@ApiModelProperty(value = "QC工艺路线")
private String qcRoutingBo;
@TableField(exist = false)
private List<QmsQcPlanDetailFactor> qcPlanDetailFactorList = new ArrayList<>();
public static String genHandle( String qcPlanBo, String seq ) {
return HandleBoProcessor.genHandle(KW_QMS_QC_PLAN_DETAIL_BO, qcPlanBo, seq);
}
}

View File

@ -0,0 +1,48 @@
package com.foreverwin.iep.qms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 检验计划明细-要因表
*
* @author mom code generator
* @date 2023-06-06 16:45:35
*/
@Data
@TableName("qms_qc_plan_detail_factor")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "检验计划明细-要因表")
public class QmsQcPlanDetailFactor extends Model<QmsQcPlanDetailFactor> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键")
private String sid;
/**
* 检验计划明细表Handle
*/
@ApiModelProperty(value="检验计划明细表Handle")
private String qcPlanDetailBo;
/**
* 要因主表Handle
*/
@ApiModelProperty(value="要因主表Handle")
private String factorBo;
}

View File

@ -0,0 +1,107 @@
package com.foreverwin.iep.qms.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.foreverwin.mom.common.core.util.R;
import com.foreverwin.mom.common.log.annotation.SysLog;
import com.foreverwin.iep.qms.entity.QmsProdQcPlan;
import com.foreverwin.iep.qms.service.QmsProdQcPlanService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.foreverwin.mom.common.excel.annotation.ResponseExcel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 产品检验计划表
*
* @author mom code generator
* @date 2023-06-06 16:41:41
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/prod-qc-plan" )
@Api(value = "prod-qc-plan", tags = "产品检验计划表管理")
public class QmsProdQcPlanController {
private final QmsProdQcPlanService qmsProdQcPlanService;
/**
* 分页查询
* @param page 分页对象
* @param qmsProdQcPlan 产品检验计划表
* @return
*/
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping("/page" )
public R getQmsProdQcPlanPage(Page page, QmsProdQcPlan qmsProdQcPlan) {
return R.ok(qmsProdQcPlanService.page(page, Wrappers.query(qmsProdQcPlan)));
}
/**
* 通过id查询产品检验计划表
* @param sid id
* @return R
*/
@ApiOperation(value = "通过id查询", notes = "通过id查询")
@GetMapping("/{sid}" )
public R getById(@PathVariable("sid" ) String sid) {
return R.ok(qmsProdQcPlanService.getById(sid));
}
/**
* 新增产品检验计划表
* @param qmsProdQcPlan 产品检验计划表
* @return R
*/
@ApiOperation(value = "新增产品检验计划表", notes = "新增产品检验计划表")
@SysLog("新增产品检验计划表" )
@PostMapping
@PreAuthorize("@pms.hasPermission('qms_qmsprodqcplan_add')" )
public R save(@RequestBody QmsProdQcPlan qmsProdQcPlan) {
return R.ok(qmsProdQcPlanService.save(qmsProdQcPlan));
}
/**
* 修改产品检验计划表
* @param qmsProdQcPlan 产品检验计划表
* @return R
*/
@ApiOperation(value = "修改产品检验计划表", notes = "修改产品检验计划表")
@SysLog("修改产品检验计划表" )
@PutMapping
@PreAuthorize("@pms.hasPermission('qms_qmsprodqcplan_edit')" )
public R updateById(@RequestBody QmsProdQcPlan qmsProdQcPlan) {
return R.ok(qmsProdQcPlanService.updateById(qmsProdQcPlan));
}
/**
* 通过id删除产品检验计划表
* @param sid id
* @return R
*/
@ApiOperation(value = "通过id删除产品检验计划表", notes = "通过id删除产品检验计划表")
@SysLog("通过id删除产品检验计划表" )
@DeleteMapping("/{sid}" )
@PreAuthorize("@pms.hasPermission('qms_qmsprodqcplan_del')" )
public R removeById(@PathVariable String sid) {
return R.ok(qmsProdQcPlanService.removeById(sid));
}
/**
* 导出excel 表格
* @param qmsProdQcPlan 查询条件
* @return excel 文件流
*/
@ResponseExcel
@GetMapping("/export")
@PreAuthorize("@pms.hasPermission('qms_qmsprodqcplan_export')" )
public List<QmsProdQcPlan> export(QmsProdQcPlan qmsProdQcPlan) {
return qmsProdQcPlanService.list(Wrappers.query(qmsProdQcPlan));
}
}

View File

@ -0,0 +1,95 @@
package com.foreverwin.iep.qms.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.foreverwin.mom.common.core.util.R;
import com.foreverwin.mom.common.log.annotation.SysLog;
import com.foreverwin.iep.qms.entity.QmsQcPlan;
import com.foreverwin.iep.qms.service.QmsQcPlanService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.foreverwin.mom.common.excel.annotation.ResponseExcel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 检验计划
*
* @author mom code generator
* @date 2023-06-06 16:43:15
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/qc-plan" )
@Api(value = "qc-plan", tags = "检验计划管理")
public class QmsQcPlanController {
private final QmsQcPlanService qmsQcPlanService;
/**
* 分页查询
* @param page 分页对象
* @param qmsQcPlan 检验计划
* @return
*/
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping("/page" )
public R getQmsQcPlanPage(Page page, QmsQcPlan qmsQcPlan) {
return R.ok(qmsQcPlanService.page(page, Wrappers.query(qmsQcPlan)));
}
/**
* 通过id查询检验计划
* @param handle id
* @return R
*/
@ApiOperation(value = "通过id查询", notes = "通过id查询")
@GetMapping("/{handle}" )
public R getById(@PathVariable("handle" ) String handle) {
return R.ok(qmsQcPlanService.getById(handle));
}
/**
* 新增检验计划
* @param qmsQcPlan 检验计划
* @return R
*/
@ApiOperation(value = "新增检验计划", notes = "新增检验计划")
@SysLog("新增检验计划" )
@PostMapping
@PreAuthorize("@pms.hasPermission('qms_insp_plan_add')" )
public R save(@RequestBody QmsQcPlan qmsQcPlan) {
return R.ok(qmsQcPlanService.save(qmsQcPlan));
}
/**
* 修改检验计划
* @param qmsQcPlan 检验计划
* @return R
*/
@ApiOperation(value = "修改检验计划", notes = "修改检验计划")
@SysLog("修改检验计划" )
@PutMapping
@PreAuthorize("@pms.hasPermission('qms_insp_plan_edit')" )
public R updateById(@RequestBody QmsQcPlan qmsQcPlan) {
return R.ok(qmsQcPlanService.updateById(qmsQcPlan));
}
/**
* 通过id删除检验计划
* @param handle id
* @return R
*/
@ApiOperation(value = "通过id删除检验计划", notes = "通过id删除检验计划")
@SysLog("通过id删除检验计划" )
@DeleteMapping("/{handle}" )
@PreAuthorize("@pms.hasPermission('qms_insp_plan_del')" )
public R removeById(@PathVariable String handle) {
return R.ok(qmsQcPlanService.removeById(handle));
}
}

View File

@ -3,6 +3,8 @@ package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsInspecFreq;
import java.util.List;
/**
* 检验频率表
*
@ -11,4 +13,5 @@ import com.foreverwin.iep.qms.entity.QmsInspecFreq;
*/
public interface QmsInspecFreqService extends IService<QmsInspecFreq> {
List<QmsInspecFreq> findInspec( String site, String inspecNo );
}

View File

@ -0,0 +1,14 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsProdQcPlan;
/**
* 产品检验计划表
*
* @author mom code generator
* @date 2023-06-06 16:41:41
*/
public interface QmsProdQcPlanService extends IService<QmsProdQcPlan> {
}

View File

@ -0,0 +1,14 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsQcPlanDetailFactor;
/**
* 检验计划明细-要因表
*
* @author mom code generator
* @date 2023-06-06 16:45:35
*/
public interface QmsQcPlanDetailFactorService extends IService<QmsQcPlanDetailFactor> {
}

View File

@ -0,0 +1,15 @@
package com.foreverwin.iep.qms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.qms.entity.QmsQcPlan;
/**
* 检验计划
*
* @author mom code generator
* @date 2023-06-06 16:43:15
*/
public interface QmsQcPlanService extends IService<QmsQcPlan> {
void addQCPlan(QmsQcPlan qmsQcPlan);
}

View File

@ -1,11 +1,15 @@
package com.foreverwin.iep.qms.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsInspecFreq;
import com.foreverwin.iep.qms.mapper.QmsInspecFreqMapper;
import com.foreverwin.iep.qms.service.QmsInspecFreqService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 检验频率表
*
@ -15,4 +19,11 @@ import org.springframework.stereotype.Service;
@Service
public class QmsInspecFreqServiceImpl extends ServiceImpl<QmsInspecFreqMapper, QmsInspecFreq> implements QmsInspecFreqService {
@Override
public List<QmsInspecFreq> findInspec( String site, String inspecNo ) {
return super.list(Wrappers.<QmsInspecFreq>lambdaQuery()
.eq(QmsInspecFreq::getSite, site)
.eq(StrUtil.isNotBlank(inspecNo), QmsInspecFreq::getInspecNo, inspecNo)
.orderByAsc(QmsInspecFreq::getInspecNo));
}
}

View File

@ -0,0 +1,18 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsProdQcPlan;
import com.foreverwin.iep.qms.mapper.QmsProdQcPlanMapper;
import com.foreverwin.iep.qms.service.QmsProdQcPlanService;
import org.springframework.stereotype.Service;
/**
* 产品检验计划表
*
* @author mom code generator
* @date 2023-06-06 16:41:41
*/
@Service
public class QmsProdQcPlanServiceImpl extends ServiceImpl<QmsProdQcPlanMapper, QmsProdQcPlan> implements QmsProdQcPlanService {
}

View File

@ -0,0 +1,18 @@
package com.foreverwin.iep.qms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.qms.entity.QmsQcPlanDetailFactor;
import com.foreverwin.iep.qms.mapper.QmsQcPlanDetailFactorMapper;
import com.foreverwin.iep.qms.service.QmsQcPlanDetailFactorService;
import org.springframework.stereotype.Service;
/**
* 检验计划明细-要因表
*
* @author mom code generator
* @date 2023-06-06 16:45:35
*/
@Service
public class QmsQcPlanDetailFactorServiceImpl extends ServiceImpl<QmsQcPlanDetailFactorMapper, QmsQcPlanDetailFactor> implements QmsQcPlanDetailFactorService {
}

View File

@ -0,0 +1,124 @@
package com.foreverwin.iep.qms.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.common.utils.SidUtils;
import com.foreverwin.iep.qms.entity.QmsProdQcPlan;
import com.foreverwin.iep.qms.entity.QmsQcPlan;
import com.foreverwin.iep.qms.entity.QmsQcPlanDetail;
import com.foreverwin.iep.qms.entity.QmsQcPlanDetailFactor;
import com.foreverwin.iep.qms.mapper.QmsQcPlanMapper;
import com.foreverwin.iep.qms.service.*;
import com.foreverwin.mom.common.core.exception.BusinessException;
import com.foreverwin.mom.common.core.util.I18nUtil;
import com.foreverwin.mom.common.data.tenant.TenantContextHolder;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
* 检验计划
*
* @author mom code generator
* @date 2023-06-06 16:43:15
*/
@Service
@AllArgsConstructor
public class QmsQcPlanServiceImpl extends ServiceImpl<QmsQcPlanMapper, QmsQcPlan> implements QmsQcPlanService {
private final QmsQcPlanDetailService qmsQcPlanDetailService;
private final QmsQcPlanDetailFactorService qmsQcPlanDetailFactorService;
private final QmsInspecFreqService qmsInspecFreqService;
private final QmsProdQcPlanService qmsProdQcPlanService;
@Override
@Transactional
public void addQCPlan( QmsQcPlan qcPlan ) {
String site = TenantContextHolder.getTenantId();
String qcPlanBo = QmsQcPlan.genHandle(site, qcPlan.getQcPlan(), qcPlan.getRevision());
qcPlan.setHandle(qcPlanBo);
if(super.getById(qcPlanBo) != null){
throw BusinessException.build(I18nUtil.getI18nText("qms.qc.plan.existed"));
}
if (StrUtil.isNotBlank(qcPlan.getInspecNo()) && qmsInspecFreqService.findInspec(site, qcPlan.getInspecNo()).size() == 0) {
throw BusinessException.build(I18nUtil.getI18nText("qms.qc.plan.inspec.freq.not.found", qcPlan.getInspecNo()));
}
// if (!FwUtils.isNullOrEmpty(qcPlan.getUserGroup()) && FwUtils.objIsEmpty(userRepository.findUserGroup(site, qcPlan.getUserGroup()))) {
// FwUtils.getCustomException("qms.qc.plan.user.group.not.found", new Object[]{ qcPlan.getUserGroup() });
// } else {
// if ("1".equals(qcPlan.getQcType())) {
// if (FwUtils.isEmpty(userRepository.findGroupByCustom(site, qcPlan.getUserGroup(), "QMS_GROUP", "QC"))) {
// FwUtils.getCustomException("qms.qc.plan.user.group.not.is.this.type", new Object[]{ qcPlan.getUserGroup(), "QC" });
// }
// } else {
// if (FwUtils.isEmpty(userRepository.findGroupByCustom(site, qcPlan.getUserGroup(), "QMS_GROUP", "OP"))) {
// FwUtils.getCustomException("qms.qc.plan.user.group.not.is.this.type", new Object[]{ qcPlan.getUserGroup(), "OP" });
// }
// }
// }
if ("true".equals(qcPlan.getCurrentRevision())) {
// 如勾選當前版本,把以前的計畫更新為舊版本
List<QmsQcPlan> zQcPlanList = findCurrQc(site, qcPlan.getQcPlan());
for (QmsQcPlan plan : zQcPlanList) {
plan.setCurrentRevision("false");
super.removeById(plan.getHandle());
super.save(plan);
}
}
qcPlan.setToSpc(qcPlan.getToSpc());
qcPlan.setCreatedDateTime(LocalDateTime.now());
if (StrUtil.isNotBlank(qcPlan.getCheckOutControl())) {
qcPlan.setCheckOutControl(null);
}
super.save(qcPlan);
List<QmsQcPlanDetail> qmsQcPlanDetails = qcPlan.getQcPlanDetailList();
qmsQcPlanDetails.forEach(detail -> {
detail.setHandle(QmsQcPlanDetail.genHandle(qcPlanBo, detail.getSeq()));
detail.setQcPlanBo(qcPlan.getHandle());
if (StrUtil.isBlank(detail.getSamplePlanBo())) {
detail.setSamplePlanBo(null);
}
if (StrUtil.isNotBlank(detail.getQcRoutingBo())) {
detail.setQcItemSid("NA");
}
qmsQcPlanDetailService.save(detail);
if(StrUtil.isNotBlank(detail.getQcRoutingBo())){
detail.getQcPlanDetailFactorList().forEach(factor -> {
factor.setSid(SidUtils.genSid());
factor.setQcPlanDetailBo(detail.getHandle());
qmsQcPlanDetailFactorService.save(factor);
});
}
});
if ("1".equals(qcPlan.getQcMode())) {
for (QmsProdQcPlan prodQcPlan : qcPlan.getResourceList()) {
qmsProdQcPlanService.save(prodQcPlan);
}
} else if ("2".equals(qcPlan.getQcMode())) {
for (QmsProdQcPlan prodQcPlan : qcPlan.getWorkCenterList()) {
qmsProdQcPlanService.save(prodQcPlan);
}
}
}
private List<QmsQcPlan> findCurrQc( String site, String qcPlan ){
return super.list(Wrappers.<QmsQcPlan>lambdaQuery()
.eq(QmsQcPlan::getSite, site)
.eq(QmsQcPlan::getCurrentRevision, "true")
.eq(StrUtil.isNotBlank(qcPlan), QmsQcPlan::getQcPlan, qcPlan));
}
}

View File

@ -0,0 +1,16 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsProdQcPlan;
import org.apache.ibatis.annotations.Mapper;
/**
* 产品检验计划表
*
* @author mom code generator
* @date 2023-06-06 16:41:41
*/
@Mapper
public interface QmsProdQcPlanMapper extends MomBaseMapper<QmsProdQcPlan> {
}

View File

@ -0,0 +1,16 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsQcPlanDetailFactor;
import org.apache.ibatis.annotations.Mapper;
/**
* 检验计划明细-要因表
*
* @author mom code generator
* @date 2023-06-06 16:45:35
*/
@Mapper
public interface QmsQcPlanDetailFactorMapper extends MomBaseMapper<QmsQcPlanDetailFactor> {
}

View File

@ -0,0 +1,16 @@
package com.foreverwin.iep.qms.mapper;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import com.foreverwin.iep.qms.entity.QmsQcPlan;
import org.apache.ibatis.annotations.Mapper;
/**
* 检验计划
*
* @author mom code generator
* @date 2023-06-06 16:43:15
*/
@Mapper
public interface QmsQcPlanMapper extends MomBaseMapper<QmsQcPlan> {
}

View File

@ -0,0 +1,20 @@
<?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="com.foreverwin.iep.qms.mapper.QmsProdQcPlanMapper">
<resultMap id="qmsProdQcPlanMap" type="com.foreverwin.iep.qms.entity.QmsProdQcPlan">
<id property="sid" column="SID"/>
<result property="site" column="SITE"/>
<result property="item" column="ITEM"/>
<result property="workCenter" column="WORK_CENTER"/>
<result property="operation" column="OPERATION"/>
<result property="resrce" column="RESRCE"/>
<result property="qcPlan" column="QC_PLAN"/>
<result property="qcPlanRevision" column="QC_PLAN_REVISION"/>
<result property="createdUser" column="CREATED_USER"/>
<result property="createdDateTime" column="CREATED_DATE_TIME"/>
<result property="materialNo" column="MATERIAL_NO"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,12 @@
<?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="com.foreverwin.iep.qms.mapper.QmsQcPlanDetailFactorMapper">
<resultMap id="qmsQcPlanDetailFactorMap" type="com.foreverwin.iep.qms.entity.QmsQcPlanDetailFactor">
<id property="sid" column="SID"/>
<result property="qcPlanDetailBo" column="QC_PLAN_DETAIL_BO"/>
<result property="factorBo" column="FACTOR_BO"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,28 @@
<?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="com.foreverwin.iep.qms.mapper.QmsQcPlanMapper">
<resultMap id="qmsQcPlanMap" type="com.foreverwin.iep.qms.entity.QmsQcPlan">
<id property="handle" column="HANDLE"/>
<result property="site" column="SITE"/>
<result property="qcPlan" column="QC_PLAN"/>
<result property="revision" column="REVISION"/>
<result property="currentRevision" column="CURRENT_REVISION"/>
<result property="description" column="DESCRIPTION"/>
<result property="qcMode" column="QC_MODE"/>
<result property="qcType" column="QC_TYPE"/>
<result property="inspecNo" column="INSPEC_NO"/>
<result property="userGroup" column="USER_GROUP"/>
<result property="createdUser" column="CREATED_USER"/>
<result property="createdDateTime" column="CREATED_DATE_TIME"/>
<result property="sipGroupName" column="SIP_GROUP_NAME"/>
<result property="sipFileName" column="SIP_FILE_NAME"/>
<result property="toSpc" column="TO_SPC"/>
<result property="modifiedUser" column="MODIFIED_USER"/>
<result property="modifiedDateTime" column="MODIFIED_DATE_TIME"/>
<result property="qcClass" column="QC_CLASS"/>
<result property="checkOutControl" column="CHECK_OUT_CONTROL"/>
</resultMap>
</mapper>