檢驗計畫
This commit is contained in:
parent
f7497fc6ce
commit
4c17a152e4
@ -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;
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@ -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 );
|
||||
}
|
||||
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 {
|
||||
|
||||
}
|
||||
@ -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 {
|
||||
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
@ -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> {
|
||||
|
||||
}
|
||||
20
qms-db/src/main/resources/qms/mapper/QmsProdQcPlanMapper.xml
Normal file
20
qms-db/src/main/resources/qms/mapper/QmsProdQcPlanMapper.xml
Normal 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>
|
||||
@ -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>
|
||||
28
qms-db/src/main/resources/qms/mapper/QmsQcPlanMapper.xml
Normal file
28
qms-db/src/main/resources/qms/mapper/QmsQcPlanMapper.xml
Normal 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>
|
||||
Loading…
Reference in New Issue
Block a user