质量检验添加质检结果填报功能

This commit is contained in:
yinjinlu-pc\尹金路 2024-12-03 23:54:26 +08:00
parent 76f6ffbe09
commit a529dc1bc9
14 changed files with 1929 additions and 6 deletions

View File

@ -20,15 +20,9 @@
系统将提供“售前”、“实施”、“用户培训”、“运维”等多个阶段的指导文档和教学视频以帮助非IT专业人士顺利完成MES项目的实施应用。
- 前端代码地址https://gitee.com/kutangguo/ktg-mes-ui
- 触控屏端地址https://gitee.com/kutangguo/ktg-mes-pad
- PC端在线体验地址 [http://www.029tec.com](http://www.029tec.com/) <font color='red'>【请不要修改账户密码,以免影响其他人体验】</font>
- 当前开发进度请参考doc->开发进度->进度甘特图.xlsx
- 第一版售前PPT请查看doc->售前资料->《苦糖果MES系统产品介绍A4横板.pptx》
- 操作手册/软件说明书请参考doc->售前资料->《苦糖果生产执行管理系统-【软件说明书】.docx》
欢迎交流沟通QQ411641505

View File

@ -8,6 +8,8 @@ create table qc_index (
index_name varchar(255) not null comment '检测项名称',
index_type varchar(64) not null comment '检测项类型',
qc_tool varchar(255) comment '检测工具',
qc_result_type varchar(64) not null comment '质检值类型',
qc_result_spc varchar(255) comment '值属性',
remark varchar(500) default '' comment '备注',
attr1 varchar(64) default null comment '预留字段1',
attr2 varchar(255) default null comment '预留字段2',
@ -432,3 +434,68 @@ create table qc_oqc_line (
-- ----------------------------
-- 14、检测结果记录表
-- ----------------------------
drop table if exists qc_result;
create table qc_result (
result_id bigint(20) not null auto_increment comment '记录ID',
result_code varchar(64) not null comment '样品编号',
source_doc_id bigint(20) comment '关联的质检单ID',
source_doc_code varchar(64) comment '关联的质检单编号',
source_doc_name varchar(255) comment '关联的质检单名称',
source_doc_type varchar(64) comment '关联的质检单类型',
item_id bigint(20) not null comment '产品物料ID',
item_code varchar(64) comment '产品物料编码',
item_name varchar(255) comment '产品物料名称',
specification varchar(500) comment '规格型号',
unit_of_measure varchar(64) comment '单位',
sn_code varchar(255) comment '对应的物资SN',
remark varchar(500) default '' comment '备注',
attr1 varchar(64) default null comment '预留字段1',
attr2 varchar(255) default null comment '预留字段2',
attr3 int(11) default 0 comment '预留字段3',
attr4 int(11) default 0 comment '预留字段4',
create_by varchar(64) default '' comment '创建者',
create_time datetime comment '创建时间',
update_by varchar(64) default '' comment '更新者',
update_time datetime comment '更新时间',
primary key (result_id)
) engine=innodb auto_increment=200 comment = '检测结果记录表';
-- ----------------------------
-- 14、检测结果明细记录表
-- ----------------------------
drop table if exists qc_result_detail;
create table qc_result_detail (
detail_id bigint(20) not null auto_increment comment '流水号',
result_id bigint(20) not null comment '结果记录ID',
index_id bigint(20) not null comment '检测项ID',
index_type varchar(64) comment '检测项类型',
qc_tool varchar(255) comment '检测工具',
check_method varchar(500) comment '检测要求',
stander_val double(12,4) comment '标准值',
unit_of_measure varchar(64) comment '单位',
threshold_max double(12,4) comment '误差上限',
threshold_min double(12,4) comment '误差下限',
qc_result_type varchar(64) not null comment '质检值类型',
qc_result_spc varchar(255) comment '值属性',
qc_val_float float(14,4) comment '浮点值',
qc_val_integer int(11) comment '整数',
qc_val_text varchar(500) comment '文字',
qc_val_dict varchar(64) comment '字典项',
qc_val_file varchar(255) comment '文件',
defect_flag varchar(64) default 'normarl' comment '判定',
remark varchar(500) default '' comment '备注',
attr1 varchar(64) default null comment '预留字段1',
attr2 varchar(255) default null comment '预留字段2',
attr3 int(11) default 0 comment '预留字段3',
attr4 int(11) default 0 comment '预留字段4',
create_by varchar(64) default '' comment '创建者',
create_time datetime comment '创建时间',
update_by varchar(64) default '' comment '更新者',
update_time datetime comment '更新时间',
primary key (detail_id)
) engine=innodb auto_increment=200 comment = '检测结果明细记录表';

View File

@ -0,0 +1,203 @@
package com.ktg.mes.qc.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ktg.common.constant.UserConstants;
import com.ktg.common.utils.StringUtils;
import com.ktg.mes.qc.domain.*;
import com.ktg.mes.qc.service.*;
import net.sf.jsqlparser.util.validation.metadata.DatabaseException;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ktg.common.annotation.Log;
import com.ktg.common.core.controller.BaseController;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.enums.BusinessType;
import com.ktg.common.utils.poi.ExcelUtil;
import com.ktg.common.core.page.TableDataInfo;
/**
* 检测结果记录Controller
*
* @author yinjinlu
* @date 2024-11-29
*/
@RestController
@RequestMapping("/mes/qc/qcresult")
public class QcResultController extends BaseController
{
@Autowired
private IQcResultService qcResultService;
@Autowired
private IQcResultDetailService qcResultDetailService;
@Autowired
private IQcIndexService qcIndexService;
@Autowired
private IQcIqcService iqcService;
@Autowired
private IQcIpqcService pqcService;
@Autowired
private IQcOqcService oqcService;
/**
* 查询检测结果记录列表
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:list')")
@GetMapping("/list")
public TableDataInfo list(QcResult qcResult)
{
startPage();
List<QcResult> list = qcResultService.selectQcResultList(qcResult);
return getDataTable(list);
}
/**
* 导出检测结果记录列表
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:export')")
@Log(title = "检测结果记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, QcResult qcResult)
{
List<QcResult> list = qcResultService.selectQcResultList(qcResult);
ExcelUtil<QcResult> util = new ExcelUtil<QcResult>(QcResult.class);
util.exportExcel(response, list, "检测结果记录数据");
}
/**
* 获取检测结果记录详细信息
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:query')")
@GetMapping(value = "/{resultId}")
public AjaxResult getInfo(@PathVariable("resultId") Long resultId)
{
return AjaxResult.success(qcResultService.selectQcResultByResultId(resultId));
}
/**
* 新增检测结果记录
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:add')")
@Log(title = "检测结果记录", businessType = BusinessType.INSERT)
@Transactional
@PostMapping
public AjaxResult add(@RequestBody QcResult qcResult)
{
List<QcResultDetail> items = qcResult.getItems();
if(CollectionUtils.isEmpty(items)){
return AjaxResult.error("检测项以及对应的结果值不能为空!");
}
switch (qcResult.getSourceDocType()){
case UserConstants.QC_TYPE_IQC:
QcIqc iqc = iqcService.selectQcIqcByIqcId(qcResult.getSourceDocId());
if(!StringUtils.isNotNull(iqc)){
return AjaxResult.error("检测结果对应的来料检验单不存在!");
}
qcResult.setSourceDocCode(iqc.getIqcCode());
qcResult.setSourceDocName(iqc.getIqcName());
qcResult.setItemId(iqc.getItemId());
qcResult.setItemCode(iqc.getItemCode());
qcResult.setItemName(iqc.getItemName());
qcResult.setSpecification(iqc.getSpecification());
qcResult.setUnitOfMeasure(iqc.getUnitOfMeasure());
break;
case UserConstants.QC_TYPE_IPQC:
QcIpqc pqc = pqcService.selectQcIpqcByIpqcId(qcResult.getSourceDocId());
if(!StringUtils.isNotNull(pqc)){
return AjaxResult.error("检测结果对应的过程检验单不存在!");
}
qcResult.setSourceDocCode(pqc.getIpqcCode());
qcResult.setSourceDocName(pqc.getIpqcName());
qcResult.setItemId(pqc.getItemId());
qcResult.setItemCode(pqc.getItemCode());
qcResult.setItemName(pqc.getItemName());
qcResult.setSpecification(pqc.getSpecification());
qcResult.setUnitOfMeasure(pqc.getUnitOfMeasure());
break;
case UserConstants.QC_TYPE_OQC:
QcOqc oqc = oqcService.selectQcOqcByOqcId(qcResult.getSourceDocId());
if(!StringUtils.isNotNull(oqc)){
return AjaxResult.error("检测结果对应的出货检验单不存在!");
}
qcResult.setSourceDocCode(oqc.getOqcCode());
qcResult.setSourceDocName(oqc.getOqcName());
qcResult.setItemId(oqc.getItemId());
qcResult.setItemCode(oqc.getItemCode());
qcResult.setItemName(oqc.getItemName());
qcResult.setSpecification(oqc.getSpecification());
qcResult.setUnitOfMeasure(oqc.getUnitOfMeasure());
break;
default:
return AjaxResult.error("不支持的来源单据类型!请检查sourceDocType参数!");
}
qcResultService.insertQcResult(qcResult);
for(QcResultDetail detail : items){
detail.setResultId(qcResult.getResultId());
if(StringUtils.isNotNull(detail.getIndexId())){
QcIndex index = qcIndexService.selectQcIndexByIndexId(detail.getIndexId());
if(!StringUtils.isNotNull(index)){
return AjaxResult.error("检测项:【"+detail.getIndexName()+"】在系统中不存在,请检查检测项设置;重新编辑检测模板,再重新起草此检测单!");
}
}
qcResultDetailService.insertQcResultDetail(detail);
}
return AjaxResult.success(qcResult);
}
/**
* 修改检测结果记录
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:edit')")
@Log(title = "检测结果记录", businessType = BusinessType.UPDATE)
@Transactional
@PutMapping
public AjaxResult edit(@RequestBody QcResult qcResult)
{
List<QcResultDetail> items = qcResult.getItems();
if(CollectionUtils.isEmpty(items)){
return AjaxResult.error("检测项以及对应的结果值不能为空!");
}
for(QcResultDetail detail : items){
qcResultDetailService.updateQcResultDetail(detail);
}
return toAjax(qcResultService.updateQcResult(qcResult));
}
/**
* 删除检测结果记录
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:remove')")
@Log(title = "检测结果记录", businessType = BusinessType.DELETE)
@Transactional
@DeleteMapping("/{resultIds}")
public AjaxResult remove(@PathVariable Long[] resultIds)
{
//先删除检测结果明细
for(Long resultId :resultIds){
qcResultDetailService.deleteQcResultDetailByResultId(resultId);
}
return toAjax(qcResultService.deleteQcResultByResultIds(resultIds));
}
}

View File

@ -0,0 +1,135 @@
package com.ktg.mes.qc.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ktg.common.constant.UserConstants;
import com.ktg.common.utils.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ktg.common.annotation.Log;
import com.ktg.common.core.controller.BaseController;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.enums.BusinessType;
import com.ktg.mes.qc.domain.QcResultDetail;
import com.ktg.mes.qc.service.IQcResultDetailService;
import com.ktg.common.utils.poi.ExcelUtil;
import com.ktg.common.core.page.TableDataInfo;
/**
* 检测结果明细记录Controller
*
* @author yinjinlu
* @date 2024-11-29
*/
@RestController
@RequestMapping("/mes/qc/qcresultdetail")
public class QcResultDetailController extends BaseController
{
@Autowired
private IQcResultDetailService qcResultDetailService;
/**
* 查询检测结果明细记录列表
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:list')")
@GetMapping("/list")
public TableDataInfo list(QcResultDetail qcResultDetail)
{
startPage();
List<QcResultDetail> list = qcResultDetailService.selectQcResultDetailList(qcResultDetail);
return getDataTable(list);
}
/**
*
* @param qcResultDetail
* @return
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:list')")
@GetMapping("/listDetails")
public AjaxResult listDetails(QcResultDetail qcResultDetail){
List<QcResultDetail> details = null;
if(StringUtils.isNotNull(qcResultDetail.getQcType())){
switch (qcResultDetail.getQcType()){
case UserConstants.QC_TYPE_IQC:
details = qcResultDetailService.selectQcResultDetailByResultIdAndIQCId(qcResultDetail);
break;
case UserConstants.QC_TYPE_IPQC:
details = qcResultDetailService.selectQcResultDetailByResultIdAndIPQCId(qcResultDetail);
break;
case UserConstants.QC_TYPE_OQC:
details = qcResultDetailService.selectQcResultDetailByResultIdAndOQCId(qcResultDetail);
break;
default:
return AjaxResult.error("来源单据类型错误!");
}
}
return AjaxResult.success(details);
}
/**
* 导出检测结果明细记录列表
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:export')")
@Log(title = "检测结果明细记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, QcResultDetail qcResultDetail)
{
List<QcResultDetail> list = qcResultDetailService.selectQcResultDetailList(qcResultDetail);
ExcelUtil<QcResultDetail> util = new ExcelUtil<QcResultDetail>(QcResultDetail.class);
util.exportExcel(response, list, "检测结果明细记录数据");
}
/**
* 获取检测结果明细记录详细信息
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:query')")
@GetMapping(value = "/{detailId}")
public AjaxResult getInfo(@PathVariable("detailId") Long detailId)
{
return AjaxResult.success(qcResultDetailService.selectQcResultDetailByDetailId(detailId));
}
/**
* 新增检测结果明细记录
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:add')")
@Log(title = "检测结果明细记录", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody QcResultDetail qcResultDetail)
{
return toAjax(qcResultDetailService.insertQcResultDetail(qcResultDetail));
}
/**
* 修改检测结果明细记录
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:edit')")
@Log(title = "检测结果明细记录", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody QcResultDetail qcResultDetail)
{
return toAjax(qcResultDetailService.updateQcResultDetail(qcResultDetail));
}
/**
* 删除检测结果明细记录
*/
@PreAuthorize("@ss.hasPermi('mes:qc:qcresult:remove')")
@Log(title = "检测结果明细记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{detailIds}")
public AjaxResult remove(@PathVariable Long[] detailIds)
{
return toAjax(qcResultDetailService.deleteQcResultDetailByDetailIds(detailIds));
}
}

View File

@ -0,0 +1,260 @@
package com.ktg.mes.qc.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.BaseEntity;
import java.util.List;
/**
* 检测结果记录对象 qc_result
*
* @author yinjinlu
* @date 2024-11-29
*/
public class QcResult extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 记录ID */
private Long resultId;
/** 记录编号 */
@Excel(name = "记录编号")
private String resultCode;
/** 关联的质检单ID */
@Excel(name = "关联的质检单ID")
private Long sourceDocId;
/** 关联的质检单编号 */
@Excel(name = "关联的质检单编号")
private String sourceDocCode;
/** 关联的质检单名称 */
@Excel(name = "关联的质检单名称")
private String sourceDocName;
/** 关联的质检单类型 */
@Excel(name = "关联的质检单类型")
private String sourceDocType;
/** 产品物料ID */
@Excel(name = "产品物料ID")
private Long itemId;
/** 产品物料编码 */
@Excel(name = "产品物料编码")
private String itemCode;
/** 产品物料名称 */
@Excel(name = "产品物料名称")
private String itemName;
/** 规格型号 */
@Excel(name = "规格型号")
private String specification;
/** 单位 */
@Excel(name = "单位")
private String unitOfMeasure;
/** 对应的物资SN */
@Excel(name = "对应的物资SN")
private String snCode;
/** 预留字段1 */
private String attr1;
/** 预留字段2 */
private String attr2;
/** 预留字段3 */
private Long attr3;
/** 预留字段4 */
private Long attr4;
private List<QcResultDetail> items;
public void setResultId(Long resultId)
{
this.resultId = resultId;
}
public Long getResultId()
{
return resultId;
}
public String getResultCode() {
return resultCode;
}
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
public void setSourceDocId(Long sourceDocId)
{
this.sourceDocId = sourceDocId;
}
public Long getSourceDocId()
{
return sourceDocId;
}
public void setSourceDocCode(String sourceDocCode)
{
this.sourceDocCode = sourceDocCode;
}
public String getSourceDocCode()
{
return sourceDocCode;
}
public void setSourceDocName(String sourceDocName)
{
this.sourceDocName = sourceDocName;
}
public String getSourceDocName()
{
return sourceDocName;
}
public void setSourceDocType(String sourceDocType)
{
this.sourceDocType = sourceDocType;
}
public String getSourceDocType()
{
return sourceDocType;
}
public void setItemId(Long itemId)
{
this.itemId = itemId;
}
public Long getItemId()
{
return itemId;
}
public void setItemCode(String itemCode)
{
this.itemCode = itemCode;
}
public String getItemCode()
{
return itemCode;
}
public void setItemName(String itemName)
{
this.itemName = itemName;
}
public String getItemName()
{
return itemName;
}
public void setSpecification(String specification)
{
this.specification = specification;
}
public String getSpecification()
{
return specification;
}
public void setUnitOfMeasure(String unitOfMeasure)
{
this.unitOfMeasure = unitOfMeasure;
}
public String getUnitOfMeasure()
{
return unitOfMeasure;
}
public void setSnCode(String snCode)
{
this.snCode = snCode;
}
public String getSnCode()
{
return snCode;
}
public void setAttr1(String attr1)
{
this.attr1 = attr1;
}
public String getAttr1()
{
return attr1;
}
public void setAttr2(String attr2)
{
this.attr2 = attr2;
}
public String getAttr2()
{
return attr2;
}
public void setAttr3(Long attr3)
{
this.attr3 = attr3;
}
public Long getAttr3()
{
return attr3;
}
public void setAttr4(Long attr4)
{
this.attr4 = attr4;
}
public Long getAttr4()
{
return attr4;
}
public List<QcResultDetail> getItems() {
return items;
}
public void setItems(List<QcResultDetail> items) {
this.items = items;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("resultId", getResultId())
.append("resultCode", getResultCode())
.append("sourceDocId", getSourceDocId())
.append("sourceDocCode", getSourceDocCode())
.append("sourceDocName", getSourceDocName())
.append("sourceDocType", getSourceDocType())
.append("itemId", getItemId())
.append("itemCode", getItemCode())
.append("itemName", getItemName())
.append("specification", getSpecification())
.append("unitOfMeasure", getUnitOfMeasure())
.append("snCode", getSnCode())
.append("remark", getRemark())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,367 @@
package com.ktg.mes.qc.domain;
import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.BaseEntity;
/**
* 检测结果明细记录对象 qc_result_detail
*
* @author yinjinlu
* @date 2024-11-29
*/
public class QcResultDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
private Long qcId;
private String qcType;
/** 流水号 */
private Long detailId;
/** 结果记录ID */
@Excel(name = "结果记录ID")
private Long resultId;
/** 检测项ID */
@Excel(name = "检测项ID")
private Long indexId;
private String indexCode;
private String indexName;
/** 检测项类型 */
@Excel(name = "检测项类型")
private String indexType;
/** 检测工具 */
@Excel(name = "检测工具")
private String qcTool;
/** 检测要求 */
@Excel(name = "检测要求")
private String checkMethod;
/** 标准值 */
@Excel(name = "标准值")
private BigDecimal standerVal;
/** 单位 */
@Excel(name = "单位")
private String unitOfMeasure;
/** 误差上限 */
@Excel(name = "误差上限")
private BigDecimal thresholdMax;
/** 误差下限 */
@Excel(name = "误差下限")
private BigDecimal thresholdMin;
/** 质检值类型 */
@Excel(name = "质检值类型")
private String qcResultType;
/** 值属性 */
@Excel(name = "值属性")
private String qcResultSpc;
/** 浮点值 */
@Excel(name = "浮点值")
private BigDecimal qcValFloat;
/** 整数 */
@Excel(name = "整数")
private Long qcValInteger;
/** 文字 */
@Excel(name = "文字")
private String qcValText;
/** 字典项 */
@Excel(name = "字典项")
private String qcValDict;
/** 文件 */
@Excel(name = "文件")
private String qcValFile;
/** 预留字段1 */
@Excel(name = "预留字段1")
private String attr1;
/** 预留字段2 */
@Excel(name = "预留字段2")
private String attr2;
/** 预留字段3 */
@Excel(name = "预留字段3")
private Long attr3;
/** 预留字段4 */
@Excel(name = "预留字段4")
private Long attr4;
public Long getQcId() {
return qcId;
}
public void setQcId(Long qcId) {
this.qcId = qcId;
}
public String getQcType() {
return qcType;
}
public void setQcType(String qcType) {
this.qcType = qcType;
}
public void setDetailId(Long detailId)
{
this.detailId = detailId;
}
public Long getDetailId()
{
return detailId;
}
public void setResultId(Long resultId)
{
this.resultId = resultId;
}
public Long getResultId()
{
return resultId;
}
public void setIndexId(Long indexId)
{
this.indexId = indexId;
}
public Long getIndexId()
{
return indexId;
}
public String getIndexCode() {
return indexCode;
}
public void setIndexCode(String indexCode) {
this.indexCode = indexCode;
}
public String getIndexName() {
return indexName;
}
public void setIndexName(String indexName) {
this.indexName = indexName;
}
public void setIndexType(String indexType)
{
this.indexType = indexType;
}
public String getIndexType()
{
return indexType;
}
public void setQcTool(String qcTool)
{
this.qcTool = qcTool;
}
public String getQcTool()
{
return qcTool;
}
public void setCheckMethod(String checkMethod)
{
this.checkMethod = checkMethod;
}
public String getCheckMethod()
{
return checkMethod;
}
public void setStanderVal(BigDecimal standerVal)
{
this.standerVal = standerVal;
}
public BigDecimal getStanderVal()
{
return standerVal;
}
public void setUnitOfMeasure(String unitOfMeasure)
{
this.unitOfMeasure = unitOfMeasure;
}
public String getUnitOfMeasure()
{
return unitOfMeasure;
}
public void setThresholdMax(BigDecimal thresholdMax)
{
this.thresholdMax = thresholdMax;
}
public BigDecimal getThresholdMax()
{
return thresholdMax;
}
public void setThresholdMin(BigDecimal thresholdMin)
{
this.thresholdMin = thresholdMin;
}
public BigDecimal getThresholdMin()
{
return thresholdMin;
}
public void setQcResultType(String qcResultType)
{
this.qcResultType = qcResultType;
}
public String getQcResultType()
{
return qcResultType;
}
public void setQcResultSpc(String qcResultSpc)
{
this.qcResultSpc = qcResultSpc;
}
public String getQcResultSpc()
{
return qcResultSpc;
}
public void setQcValFloat(BigDecimal qcValFloat)
{
this.qcValFloat = qcValFloat;
}
public BigDecimal getQcValFloat()
{
return qcValFloat;
}
public void setQcValInteger(Long qcValInteger)
{
this.qcValInteger = qcValInteger;
}
public Long getQcValInteger()
{
return qcValInteger;
}
public void setQcValText(String qcValText)
{
this.qcValText = qcValText;
}
public String getQcValText()
{
return qcValText;
}
public void setQcValDict(String qcValDict)
{
this.qcValDict = qcValDict;
}
public String getQcValDict()
{
return qcValDict;
}
public void setQcValFile(String qcValFile)
{
this.qcValFile = qcValFile;
}
public String getQcValFile()
{
return qcValFile;
}
public void setAttr1(String attr1)
{
this.attr1 = attr1;
}
public String getAttr1()
{
return attr1;
}
public void setAttr2(String attr2)
{
this.attr2 = attr2;
}
public String getAttr2()
{
return attr2;
}
public void setAttr3(Long attr3)
{
this.attr3 = attr3;
}
public Long getAttr3()
{
return attr3;
}
public void setAttr4(Long attr4)
{
this.attr4 = attr4;
}
public Long getAttr4()
{
return attr4;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("detailId", getDetailId())
.append("resultId", getResultId())
.append("indexId", getIndexId())
.append("indexType", getIndexType())
.append("qcTool", getQcTool())
.append("checkMethod", getCheckMethod())
.append("standerVal", getStanderVal())
.append("unitOfMeasure", getUnitOfMeasure())
.append("thresholdMax", getThresholdMax())
.append("thresholdMin", getThresholdMin())
.append("qcResultType", getQcResultType())
.append("qcResultSpc", getQcResultSpc())
.append("qcValFloat", getQcValFloat())
.append("qcValInteger", getQcValInteger())
.append("qcValText", getQcValText())
.append("qcValDict", getQcValDict())
.append("qcValFile", getQcValFile())
.append("remark", getRemark())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,93 @@
package com.ktg.mes.qc.mapper;
import java.util.List;
import com.ktg.mes.qc.domain.QcResultDetail;
/**
* 检测结果明细记录Mapper接口
*
* @author yinjinlu
* @date 2024-11-29
*/
public interface QcResultDetailMapper
{
/**
* 查询检测结果明细记录
*
* @param detailId 检测结果明细记录主键
* @return 检测结果明细记录
*/
public QcResultDetail selectQcResultDetailByDetailId(Long detailId);
/**
* 查询检测结果明细记录列表
*
* @param qcResultDetail 检测结果明细记录
* @return 检测结果明细记录集合
*/
public List<QcResultDetail> selectQcResultDetailList(QcResultDetail qcResultDetail);
/**
* 查询某个IQC单据下某个ResultId的检测值列表
* 如果ResultId为空则返回此单据的根据index检查项构造的列表
* @param qcResultDetail
* @return
*/
public List<QcResultDetail> selectQcResultDetailByResultIdAndIQCId(QcResultDetail qcResultDetail);
/**
* 查询某个IPQC单据下某个ResultId的检测值列表
* 如果ResultId为空则返回此单据的根据index检查项构造的列表
* @param qcResultDetail
* @return
*/
public List<QcResultDetail> selectQcResultDetailByResultIdAndIPQCId(QcResultDetail qcResultDetail);
/**
* 查询某个OQC单据下某个ResultId的检测值列表
* 如果ResultId为空则返回此单据的根据index检查项构造的列表
* @param qcResultDetail
* @return
*/
public List<QcResultDetail> selectQcResultDetailByResultIdAndOQCId(QcResultDetail qcResultDetail);
/**
* 新增检测结果明细记录
*
* @param qcResultDetail 检测结果明细记录
* @return 结果
*/
public int insertQcResultDetail(QcResultDetail qcResultDetail);
/**
* 修改检测结果明细记录
*
* @param qcResultDetail 检测结果明细记录
* @return 结果
*/
public int updateQcResultDetail(QcResultDetail qcResultDetail);
/**
* 删除检测结果明细记录
*
* @param detailId 检测结果明细记录主键
* @return 结果
*/
public int deleteQcResultDetailByDetailId(Long detailId);
/**
* 批量删除检测结果明细记录
*
* @param detailIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteQcResultDetailByDetailIds(Long[] detailIds);
/**
* 根据检测结果ID删除所有明细信息
* @param resultId
* @return
*/
public int deleteQcResultDetailByResultId(long resultId);
}

View File

@ -0,0 +1,61 @@
package com.ktg.mes.qc.mapper;
import java.util.List;
import com.ktg.mes.qc.domain.QcResult;
/**
* 检测结果记录Mapper接口
*
* @author yinjinlu
* @date 2024-11-29
*/
public interface QcResultMapper
{
/**
* 查询检测结果记录
*
* @param resultId 检测结果记录主键
* @return 检测结果记录
*/
public QcResult selectQcResultByResultId(Long resultId);
/**
* 查询检测结果记录列表
*
* @param qcResult 检测结果记录
* @return 检测结果记录集合
*/
public List<QcResult> selectQcResultList(QcResult qcResult);
/**
* 新增检测结果记录
*
* @param qcResult 检测结果记录
* @return 结果
*/
public int insertQcResult(QcResult qcResult);
/**
* 修改检测结果记录
*
* @param qcResult 检测结果记录
* @return 结果
*/
public int updateQcResult(QcResult qcResult);
/**
* 删除检测结果记录
*
* @param resultId 检测结果记录主键
* @return 结果
*/
public int deleteQcResultByResultId(Long resultId);
/**
* 批量删除检测结果记录
*
* @param resultIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteQcResultByResultIds(Long[] resultIds);
}

View File

@ -0,0 +1,93 @@
package com.ktg.mes.qc.service;
import java.util.List;
import com.ktg.mes.qc.domain.QcResultDetail;
/**
* 检测结果明细记录Service接口
*
* @author yinjinlu
* @date 2024-11-29
*/
public interface IQcResultDetailService
{
/**
* 查询检测结果明细记录
*
* @param detailId 检测结果明细记录主键
* @return 检测结果明细记录
*/
public QcResultDetail selectQcResultDetailByDetailId(Long detailId);
/**
* 查询检测结果明细记录列表
*
* @param qcResultDetail 检测结果明细记录
* @return 检测结果明细记录集合
*/
public List<QcResultDetail> selectQcResultDetailList(QcResultDetail qcResultDetail);
/**
* 查询某个IQC单据下某个ResultId的检测值列表
* 如果ResultId为空则返回此单据的根据index检查项构造的列表
* @param qcResultDetail
* @return
*/
public List<QcResultDetail> selectQcResultDetailByResultIdAndIQCId(QcResultDetail qcResultDetail);
/**
* 查询某个IPQC单据下某个ResultId的检测值列表
* 如果ResultId为空则返回此单据的根据index检查项构造的列表
* @param qcResultDetail
* @return
*/
public List<QcResultDetail> selectQcResultDetailByResultIdAndIPQCId(QcResultDetail qcResultDetail);
/**
* 查询某个OQC单据下某个ResultId的检测值列表
* 如果ResultId为空则返回此单据的根据index检查项构造的列表
* @param qcResultDetail
* @return
*/
public List<QcResultDetail> selectQcResultDetailByResultIdAndOQCId(QcResultDetail qcResultDetail);
/**
* 新增检测结果明细记录
*
* @param qcResultDetail 检测结果明细记录
* @return 结果
*/
public int insertQcResultDetail(QcResultDetail qcResultDetail);
/**
* 修改检测结果明细记录
*
* @param qcResultDetail 检测结果明细记录
* @return 结果
*/
public int updateQcResultDetail(QcResultDetail qcResultDetail);
/**
* 批量删除检测结果明细记录
*
* @param detailIds 需要删除的检测结果明细记录主键集合
* @return 结果
*/
public int deleteQcResultDetailByDetailIds(Long[] detailIds);
/**
* 删除检测结果明细记录信息
*
* @param detailId 检测结果明细记录主键
* @return 结果
*/
public int deleteQcResultDetailByDetailId(Long detailId);
/**
* 根据检测结果ID删除所有明细信息
* @param resultId
* @return
*/
public int deleteQcResultDetailByResultId(long resultId);
}

View File

@ -0,0 +1,61 @@
package com.ktg.mes.qc.service;
import java.util.List;
import com.ktg.mes.qc.domain.QcResult;
/**
* 检测结果记录Service接口
*
* @author yinjinlu
* @date 2024-11-29
*/
public interface IQcResultService
{
/**
* 查询检测结果记录
*
* @param resultId 检测结果记录主键
* @return 检测结果记录
*/
public QcResult selectQcResultByResultId(Long resultId);
/**
* 查询检测结果记录列表
*
* @param qcResult 检测结果记录
* @return 检测结果记录集合
*/
public List<QcResult> selectQcResultList(QcResult qcResult);
/**
* 新增检测结果记录
*
* @param qcResult 检测结果记录
* @return 结果
*/
public int insertQcResult(QcResult qcResult);
/**
* 修改检测结果记录
*
* @param qcResult 检测结果记录
* @return 结果
*/
public int updateQcResult(QcResult qcResult);
/**
* 批量删除检测结果记录
*
* @param resultIds 需要删除的检测结果记录主键集合
* @return 结果
*/
public int deleteQcResultByResultIds(Long[] resultIds);
/**
* 删除检测结果记录信息
*
* @param resultId 检测结果记录主键
* @return 结果
*/
public int deleteQcResultByResultId(Long resultId);
}

View File

@ -0,0 +1,116 @@
package com.ktg.mes.qc.service.impl;
import java.util.List;
import com.ktg.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ktg.mes.qc.mapper.QcResultDetailMapper;
import com.ktg.mes.qc.domain.QcResultDetail;
import com.ktg.mes.qc.service.IQcResultDetailService;
/**
* 检测结果明细记录Service业务层处理
*
* @author yinjinlu
* @date 2024-11-29
*/
@Service
public class QcResultDetailServiceImpl implements IQcResultDetailService
{
@Autowired
private QcResultDetailMapper qcResultDetailMapper;
/**
* 查询检测结果明细记录
*
* @param detailId 检测结果明细记录主键
* @return 检测结果明细记录
*/
@Override
public QcResultDetail selectQcResultDetailByDetailId(Long detailId)
{
return qcResultDetailMapper.selectQcResultDetailByDetailId(detailId);
}
/**
* 查询检测结果明细记录列表
*
* @param qcResultDetail 检测结果明细记录
* @return 检测结果明细记录
*/
@Override
public List<QcResultDetail> selectQcResultDetailList(QcResultDetail qcResultDetail)
{
return qcResultDetailMapper.selectQcResultDetailList(qcResultDetail);
}
@Override
public List<QcResultDetail> selectQcResultDetailByResultIdAndIQCId(QcResultDetail qcResultDetail) {
return qcResultDetailMapper.selectQcResultDetailByResultIdAndIQCId(qcResultDetail);
}
@Override
public List<QcResultDetail> selectQcResultDetailByResultIdAndIPQCId(QcResultDetail qcResultDetail) {
return qcResultDetailMapper.selectQcResultDetailByResultIdAndIPQCId(qcResultDetail);
}
@Override
public List<QcResultDetail> selectQcResultDetailByResultIdAndOQCId(QcResultDetail qcResultDetail) {
return qcResultDetailMapper.selectQcResultDetailByResultIdAndOQCId(qcResultDetail);
}
/**
* 新增检测结果明细记录
*
* @param qcResultDetail 检测结果明细记录
* @return 结果
*/
@Override
public int insertQcResultDetail(QcResultDetail qcResultDetail)
{
qcResultDetail.setCreateTime(DateUtils.getNowDate());
return qcResultDetailMapper.insertQcResultDetail(qcResultDetail);
}
/**
* 修改检测结果明细记录
*
* @param qcResultDetail 检测结果明细记录
* @return 结果
*/
@Override
public int updateQcResultDetail(QcResultDetail qcResultDetail)
{
qcResultDetail.setUpdateTime(DateUtils.getNowDate());
return qcResultDetailMapper.updateQcResultDetail(qcResultDetail);
}
/**
* 批量删除检测结果明细记录
*
* @param detailIds 需要删除的检测结果明细记录主键
* @return 结果
*/
@Override
public int deleteQcResultDetailByDetailIds(Long[] detailIds)
{
return qcResultDetailMapper.deleteQcResultDetailByDetailIds(detailIds);
}
/**
* 删除检测结果明细记录信息
*
* @param detailId 检测结果明细记录主键
* @return 结果
*/
@Override
public int deleteQcResultDetailByDetailId(Long detailId)
{
return qcResultDetailMapper.deleteQcResultDetailByDetailId(detailId);
}
@Override
public int deleteQcResultDetailByResultId(long resultId) {
return qcResultDetailMapper.deleteQcResultDetailByResultId(resultId);
}
}

View File

@ -0,0 +1,96 @@
package com.ktg.mes.qc.service.impl;
import java.util.List;
import com.ktg.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ktg.mes.qc.mapper.QcResultMapper;
import com.ktg.mes.qc.domain.QcResult;
import com.ktg.mes.qc.service.IQcResultService;
/**
* 检测结果记录Service业务层处理
*
* @author yinjinlu
* @date 2024-11-29
*/
@Service
public class QcResultServiceImpl implements IQcResultService
{
@Autowired
private QcResultMapper qcResultMapper;
/**
* 查询检测结果记录
*
* @param resultId 检测结果记录主键
* @return 检测结果记录
*/
@Override
public QcResult selectQcResultByResultId(Long resultId)
{
return qcResultMapper.selectQcResultByResultId(resultId);
}
/**
* 查询检测结果记录列表
*
* @param qcResult 检测结果记录
* @return 检测结果记录
*/
@Override
public List<QcResult> selectQcResultList(QcResult qcResult)
{
return qcResultMapper.selectQcResultList(qcResult);
}
/**
* 新增检测结果记录
*
* @param qcResult 检测结果记录
* @return 结果
*/
@Override
public int insertQcResult(QcResult qcResult)
{
qcResult.setCreateTime(DateUtils.getNowDate());
return qcResultMapper.insertQcResult(qcResult);
}
/**
* 修改检测结果记录
*
* @param qcResult 检测结果记录
* @return 结果
*/
@Override
public int updateQcResult(QcResult qcResult)
{
qcResult.setUpdateTime(DateUtils.getNowDate());
return qcResultMapper.updateQcResult(qcResult);
}
/**
* 批量删除检测结果记录
*
* @param resultIds 需要删除的检测结果记录主键
* @return 结果
*/
@Override
public int deleteQcResultByResultIds(Long[] resultIds)
{
return qcResultMapper.deleteQcResultByResultIds(resultIds);
}
/**
* 删除检测结果记录信息
*
* @param resultId 检测结果记录主键
* @return 结果
*/
@Override
public int deleteQcResultByResultId(Long resultId)
{
return qcResultMapper.deleteQcResultByResultId(resultId);
}
}

View File

@ -0,0 +1,235 @@
<?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.ktg.mes.qc.mapper.QcResultDetailMapper">
<resultMap type="QcResultDetail" id="QcResultDetailResult">
<result property="detailId" column="detail_id" />
<result property="resultId" column="result_id" />
<result property="indexId" column="index_id" />
<result property="indexCode" column="index_code" />
<result property="indexName" column="index_name" />
<result property="indexType" column="index_type" />
<result property="qcTool" column="qc_tool" />
<result property="checkMethod" column="check_method" />
<result property="standerVal" column="stander_val" />
<result property="unitOfMeasure" column="unit_of_measure" />
<result property="thresholdMax" column="threshold_max" />
<result property="thresholdMin" column="threshold_min" />
<result property="qcResultType" column="qc_result_type" />
<result property="qcResultSpc" column="qc_result_spc" />
<result property="qcValFloat" column="qc_val_float" />
<result property="qcValInteger" column="qc_val_integer" />
<result property="qcValText" column="qc_val_text" />
<result property="qcValDict" column="qc_val_dict" />
<result property="qcValFile" column="qc_val_file" />
<result property="remark" column="remark" />
<result property="attr1" column="attr1" />
<result property="attr2" column="attr2" />
<result property="attr3" column="attr3" />
<result property="attr4" column="attr4" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectQcResultDetailVo">
select detail_id, result_id, index_id, index_type, qc_tool, check_method, stander_val, unit_of_measure, threshold_max, threshold_min, qc_result_type, qc_result_spc, qc_val_float, qc_val_integer, qc_val_text, qc_val_dict, qc_val_file, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from qc_result_detail
</sql>
<select id="selectQcResultDetailList" parameterType="QcResultDetail" resultMap="QcResultDetailResult">
<include refid="selectQcResultDetailVo"/>
<where>
<if test="resultId != null "> and result_id = #{resultId}</if>
<if test="indexId != null "> and index_id = #{indexId}</if>
<if test="indexType != null and indexType != ''"> and index_type = #{indexType}</if>
<if test="qcTool != null and qcTool != ''"> and qc_tool = #{qcTool}</if>
<if test="checkMethod != null and checkMethod != ''"> and check_method = #{checkMethod}</if>
<if test="standerVal != null "> and stander_val = #{standerVal}</if>
<if test="unitOfMeasure != null and unitOfMeasure != ''"> and unit_of_measure = #{unitOfMeasure}</if>
<if test="thresholdMax != null "> and threshold_max = #{thresholdMax}</if>
<if test="thresholdMin != null "> and threshold_min = #{thresholdMin}</if>
<if test="qcResultType != null and qcResultType != ''"> and qc_result_type = #{qcResultType}</if>
<if test="qcResultSpc != null and qcResultSpc != ''"> and qc_result_spc = #{qcResultSpc}</if>
<if test="qcValFloat != null "> and qc_val_float = #{qcValFloat}</if>
<if test="qcValInteger != null "> and qc_val_integer = #{qcValInteger}</if>
<if test="qcValText != null and qcValText != ''"> and qc_val_text = #{qcValText}</if>
<if test="qcValDict != null and qcValDict != ''"> and qc_val_dict = #{qcValDict}</if>
<if test="qcValFile != null and qcValFile != ''"> and qc_val_file = #{qcValFile}</if>
<if test="attr1 != null and attr1 != ''"> and attr1 = #{attr1}</if>
<if test="attr2 != null and attr2 != ''"> and attr2 = #{attr2}</if>
<if test="attr3 != null "> and attr3 = #{attr3}</if>
<if test="attr4 != null "> and attr4 = #{attr4}</if>
</where>
</select>
<select id="selectQcResultDetailByResultIdAndIQCId" parameterType="QcResultDetail" resultMap="QcResultDetailResult">
select detail_id, result_id, ql.index_id, ql.index_code, ql.index_name, ql.index_type, ql.qc_tool, ql.check_method, ql.stander_val, ql.unit_of_measure, ql.threshold_max, ql.threshold_min, qi.qc_result_type, qi.qc_result_spc, d.qc_val_float, d.qc_val_integer, d.qc_val_text, d.qc_val_dict, d.qc_val_file, d.remark, d.create_by, d.create_time, d.update_by, d.update_time
from qc_iqc_line ql
left join qc_index qi
on ql.index_id = qi.index_id
left join qc_result_detail d
<choose>
<when test="resultId !=null " >
on qi.index_id = d.index_id and d.result_id = #{resultId}
</when>
<otherwise>
on qi.index_id = d.index_id and d.result_id = -1
</otherwise>
</choose>
where 1=1
and ql.iqc_id = #{qcId}
order by qi.index_id asc
</select>
<select id="selectQcResultDetailByResultIdAndIPQCId" parameterType="QcResultDetail" resultMap="QcResultDetailResult">
select detail_id, result_id, ql.index_id, ql.index_code, ql.index_name, ql.index_type, ql.qc_tool, ql.check_method, ql.stander_val, ql.unit_of_measure, ql.threshold_max, ql.threshold_min, qi.qc_result_type, qi.qc_result_spc, d.qc_val_float, d.qc_val_integer, d.qc_val_text, d.qc_val_dict, d.qc_val_file, d.remark, d.create_by, d.create_time, d.update_by, d.update_time
from qc_ipqc_line ql
left join qc_index qi
on ql.index_id = qi.index_id
left join qc_result_detail d
<choose>
<when test="resultId !=null " >
on qi.index_id = d.index_id and d.result_id = #{resultId}
</when>
<otherwise>
on qi.index_id = d.index_id and d.result_id = -1
</otherwise>
</choose>
where 1=1
and ql.ipqc_id = #{qcId}
order by qi.index_id asc
</select>
<select id="selectQcResultDetailByResultIdAndOQCId" parameterType="QcResultDetail" resultMap="QcResultDetailResult">
select detail_id, result_id, ql.index_id, ql.index_code, ql.index_name, ql.index_type, ql.qc_tool, ql.check_method, ql.stander_val, ql.unit_of_measure, ql.threshold_max, ql.threshold_min, qi.qc_result_type, qi.qc_result_spc, d.qc_val_float, d.qc_val_integer, d.qc_val_text, d.qc_val_dict, d.qc_val_file, d.remark, d.create_by, d.create_time, d.update_by, d.update_time
from qc_oqc_line ql
left join qc_index qi
on ql.index_id = qi.index_id
left join qc_result_detail d
<choose>
<when test="resultId !=null " >
on qi.index_id = d.index_id and d.result_id = #{resultId}
</when>
<otherwise>
on qi.index_id = d.index_id and d.result_id = -1
</otherwise>
</choose>
where 1=1
and ql.oqc_id = #{qcId}
order by qi.index_id asc
</select>
<select id="selectQcResultDetailByDetailId" parameterType="Long" resultMap="QcResultDetailResult">
<include refid="selectQcResultDetailVo"/>
where detail_id = #{detailId}
</select>
<insert id="insertQcResultDetail" parameterType="QcResultDetail" useGeneratedKeys="true" keyProperty="detailId">
insert into qc_result_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="resultId != null">result_id,</if>
<if test="indexId != null">index_id,</if>
<if test="indexType != null">index_type,</if>
<if test="qcTool != null">qc_tool,</if>
<if test="checkMethod != null">check_method,</if>
<if test="standerVal != null">stander_val,</if>
<if test="unitOfMeasure != null">unit_of_measure,</if>
<if test="thresholdMax != null">threshold_max,</if>
<if test="thresholdMin != null">threshold_min,</if>
<if test="qcResultType != null and qcResultType != ''">qc_result_type,</if>
<if test="qcResultSpc != null">qc_result_spc,</if>
<if test="qcValFloat != null">qc_val_float,</if>
<if test="qcValInteger != null">qc_val_integer,</if>
<if test="qcValText != null">qc_val_text,</if>
<if test="qcValDict != null">qc_val_dict,</if>
<if test="qcValFile != null">qc_val_file,</if>
<if test="remark != null">remark,</if>
<if test="attr1 != null">attr1,</if>
<if test="attr2 != null">attr2,</if>
<if test="attr3 != null">attr3,</if>
<if test="attr4 != null">attr4,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="resultId != null">#{resultId},</if>
<if test="indexId != null">#{indexId},</if>
<if test="indexType != null">#{indexType},</if>
<if test="qcTool != null">#{qcTool},</if>
<if test="checkMethod != null">#{checkMethod},</if>
<if test="standerVal != null">#{standerVal},</if>
<if test="unitOfMeasure != null">#{unitOfMeasure},</if>
<if test="thresholdMax != null">#{thresholdMax},</if>
<if test="thresholdMin != null">#{thresholdMin},</if>
<if test="qcResultType != null and qcResultType != ''">#{qcResultType},</if>
<if test="qcResultSpc != null">#{qcResultSpc},</if>
<if test="qcValFloat != null">#{qcValFloat},</if>
<if test="qcValInteger != null">#{qcValInteger},</if>
<if test="qcValText != null">#{qcValText},</if>
<if test="qcValDict != null">#{qcValDict},</if>
<if test="qcValFile != null">#{qcValFile},</if>
<if test="remark != null">#{remark},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="attr2 != null">#{attr2},</if>
<if test="attr3 != null">#{attr3},</if>
<if test="attr4 != null">#{attr4},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateQcResultDetail" parameterType="QcResultDetail">
update qc_result_detail
<trim prefix="SET" suffixOverrides=",">
<if test="resultId != null">result_id = #{resultId},</if>
<if test="indexId != null">index_id = #{indexId},</if>
<if test="indexType != null">index_type = #{indexType},</if>
<if test="qcTool != null">qc_tool = #{qcTool},</if>
<if test="checkMethod != null">check_method = #{checkMethod},</if>
<if test="standerVal != null">stander_val = #{standerVal},</if>
<if test="unitOfMeasure != null">unit_of_measure = #{unitOfMeasure},</if>
<if test="thresholdMax != null">threshold_max = #{thresholdMax},</if>
<if test="thresholdMin != null">threshold_min = #{thresholdMin},</if>
<if test="qcResultType != null and qcResultType != ''">qc_result_type = #{qcResultType},</if>
<if test="qcResultSpc != null">qc_result_spc = #{qcResultSpc},</if>
<if test="qcValFloat != null">qc_val_float = #{qcValFloat},</if>
<if test="qcValInteger != null">qc_val_integer = #{qcValInteger},</if>
<if test="qcValText != null">qc_val_text = #{qcValText},</if>
<if test="qcValDict != null">qc_val_dict = #{qcValDict},</if>
<if test="qcValFile != null">qc_val_file = #{qcValFile},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if>
<if test="attr4 != null">attr4 = #{attr4},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where detail_id = #{detailId}
</update>
<delete id="deleteQcResultDetailByDetailId" parameterType="Long">
delete from qc_result_detail where detail_id = #{detailId}
</delete>
<delete id="deleteQcResultDetailByDetailIds" parameterType="String">
delete from qc_result_detail where detail_id in
<foreach item="detailId" collection="array" open="(" separator="," close=")">
#{detailId}
</foreach>
</delete>
<delete id="deleteQcResultDetailByResultId" parameterType="Long">
delete from qc_result_detail where result_id = #{resultId}
</delete>
</mapper>

View File

@ -0,0 +1,142 @@
<?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.ktg.mes.qc.mapper.QcResultMapper">
<resultMap type="QcResult" id="QcResultResult">
<result property="resultId" column="result_id" />
<result property="resultCode" column="result_code" />
<result property="sourceDocId" column="source_doc_id" />
<result property="sourceDocCode" column="source_doc_code" />
<result property="sourceDocName" column="source_doc_name" />
<result property="sourceDocType" column="source_doc_type" />
<result property="itemId" column="item_id" />
<result property="itemCode" column="item_code" />
<result property="itemName" column="item_name" />
<result property="specification" column="specification" />
<result property="unitOfMeasure" column="unit_of_measure" />
<result property="snCode" column="sn_code" />
<result property="remark" column="remark" />
<result property="attr1" column="attr1" />
<result property="attr2" column="attr2" />
<result property="attr3" column="attr3" />
<result property="attr4" column="attr4" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectQcResultVo">
select result_id, result_code, source_doc_id, source_doc_code, source_doc_name, source_doc_type, item_id, item_code, item_name, specification, unit_of_measure, sn_code, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from qc_result
</sql>
<select id="selectQcResultList" parameterType="QcResult" resultMap="QcResultResult">
<include refid="selectQcResultVo"/>
<where>
<if test="resultCode != null "> and result_code = #{resultCode}</if>
<if test="sourceDocId != null "> and source_doc_id = #{sourceDocId}</if>
<if test="sourceDocCode != null and sourceDocCode != ''"> and source_doc_code = #{sourceDocCode}</if>
<if test="sourceDocName != null and sourceDocName != ''"> and source_doc_name like concat('%', #{sourceDocName}, '%')</if>
<if test="sourceDocType != null and sourceDocType != ''"> and source_doc_type = #{sourceDocType}</if>
<if test="itemId != null "> and item_id = #{itemId}</if>
<if test="itemCode != null and itemCode != ''"> and item_code = #{itemCode}</if>
<if test="itemName != null and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
<if test="specification != null and specification != ''"> and specification = #{specification}</if>
<if test="unitOfMeasure != null and unitOfMeasure != ''"> and unit_of_measure = #{unitOfMeasure}</if>
<if test="snCode != null and snCode != ''"> and sn_code = #{snCode}</if>
</where>
</select>
<select id="selectQcResultByResultId" parameterType="Long" resultMap="QcResultResult">
<include refid="selectQcResultVo"/>
where result_id = #{resultId}
</select>
<insert id="insertQcResult" parameterType="QcResult" useGeneratedKeys="true" keyProperty="resultId">
insert into qc_result
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="resultCode != null">result_code,</if>
<if test="sourceDocId != null">source_doc_id,</if>
<if test="sourceDocCode != null">source_doc_code,</if>
<if test="sourceDocName != null">source_doc_name,</if>
<if test="sourceDocType != null">source_doc_type,</if>
<if test="itemId != null">item_id,</if>
<if test="itemCode != null">item_code,</if>
<if test="itemName != null">item_name,</if>
<if test="specification != null">specification,</if>
<if test="unitOfMeasure != null">unit_of_measure,</if>
<if test="snCode != null">sn_code,</if>
<if test="remark != null">remark,</if>
<if test="attr1 != null">attr1,</if>
<if test="attr2 != null">attr2,</if>
<if test="attr3 != null">attr3,</if>
<if test="attr4 != null">attr4,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="resultCode != null">#{resultCode},</if>
<if test="sourceDocId != null">#{sourceDocId},</if>
<if test="sourceDocCode != null">#{sourceDocCode},</if>
<if test="sourceDocName != null">#{sourceDocName},</if>
<if test="sourceDocType != null">#{sourceDocType},</if>
<if test="itemId != null">#{itemId},</if>
<if test="itemCode != null">#{itemCode},</if>
<if test="itemName != null">#{itemName},</if>
<if test="specification != null">#{specification},</if>
<if test="unitOfMeasure != null">#{unitOfMeasure},</if>
<if test="snCode != null">#{snCode},</if>
<if test="remark != null">#{remark},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="attr2 != null">#{attr2},</if>
<if test="attr3 != null">#{attr3},</if>
<if test="attr4 != null">#{attr4},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateQcResult" parameterType="QcResult">
update qc_result
<trim prefix="SET" suffixOverrides=",">
<if test="resultCode != null">result_code = #{resultCode},</if>
<if test="sourceDocId != null">source_doc_id = #{sourceDocId},</if>
<if test="sourceDocCode != null">source_doc_code = #{sourceDocCode},</if>
<if test="sourceDocName != null">source_doc_name = #{sourceDocName},</if>
<if test="sourceDocType != null">source_doc_type = #{sourceDocType},</if>
<if test="itemId != null">item_id = #{itemId},</if>
<if test="itemCode != null">item_code = #{itemCode},</if>
<if test="itemName != null">item_name = #{itemName},</if>
<if test="specification != null">specification = #{specification},</if>
<if test="unitOfMeasure != null">unit_of_measure = #{unitOfMeasure},</if>
<if test="snCode != null">sn_code = #{snCode},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if>
<if test="attr4 != null">attr4 = #{attr4},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where result_id = #{resultId}
</update>
<delete id="deleteQcResultByResultId" parameterType="Long">
delete from qc_result where result_id = #{resultId}
</delete>
<delete id="deleteQcResultByResultIds" parameterType="String">
delete from qc_result where result_id in
<foreach item="resultId" collection="array" open="(" separator="," close=")">
#{resultId}
</foreach>
</delete>
</mapper>