Browse Source

2024-07-30

QMS报表
java8
fengyuan_yang 1 year ago
parent
commit
f8013a0d8b
  1. 65
      src/main/java/com/xujie/sys/modules/pms/controller/QcReportController.java
  2. 247
      src/main/java/com/xujie/sys/modules/pms/data/QcReportData.java
  3. 18
      src/main/java/com/xujie/sys/modules/pms/mapper/QcReportMapper.java
  4. 41
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcReportServiceImpl.java
  5. 14
      src/main/java/com/xujie/sys/modules/pms/service/QcReportService.java
  6. 4
      src/main/resources/mapper/pms/QcMapper.xml
  7. 461
      src/main/resources/mapper/pms/QcReportMapper.xml

65
src/main/java/com/xujie/sys/modules/pms/controller/QcReportController.java

@ -0,0 +1,65 @@
package com.xujie.sys.modules.pms.controller;
import com.xujie.sys.common.utils.PageUtils;
import com.xujie.sys.common.utils.R;
import com.xujie.sys.modules.pms.data.QcReportData;
import com.xujie.sys.modules.pms.service.QcReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/pms/qcReport")
public class QcReportController {
@Autowired
private QcReportService qcReportService;
/**
* IQC报表查询
* @param data
* @return
*/
@PostMapping("/getIQCReport")
public R getIQCReport(@RequestBody QcReportData data){
PageUtils page = qcReportService.getIQCReport(data);
return R.ok().put("page", page);
}
/**
* IPQC报表查询
* @param data
* @return
*/
@PostMapping("/getIPQCReport")
public R getIPQCReport(@RequestBody QcReportData data){
PageUtils page = qcReportService.getIPQCReport(data);
return R.ok().put("page", page);
}
/**
* FAI报表查询
* @param data
* @return
*/
@PostMapping("/getFAIReport")
public R getFAIReport(@RequestBody QcReportData data){
PageUtils page = qcReportService.getFAIReport(data);
return R.ok().put("page", page);
}
/**
* FQC报表查询
* @param data
* @return
*/
@PostMapping("/getFQCReport")
public R getFQCReport(@RequestBody QcReportData data){
PageUtils page = qcReportService.getFQCReport(data);
return R.ok().put("page", page);
}
}

247
src/main/java/com/xujie/sys/modules/pms/data/QcReportData.java

@ -0,0 +1,247 @@
package com.xujie.sys.modules.pms.data;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xujie.sys.common.utils.QueryPage;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
public class QcReportData extends QueryPage {
/**
* site
*/
private String site;
/**
* buNo
*/
private String buNo;
/**
* buDesc
*/
private String buDesc;
/**
* 用户名
*/
private String userName;
/**
* 检验单号
*/
private String inspectionNo;
/**
* 状态
*/
private String state;
/**
* 状态
*/
private List<String> states;
/**
* 检验结论
*/
private String inspectionResult;
/**
* 送检日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date taskDate;
/**
* 检验任务日期(最大)
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startDate;
/**
* 检验任务日期(最小)
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
/**
* 送检日期(最大)
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startDate2;
/**
* 送检日期(最小)
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate2;
/**
* 检验周期
*/
private BigDecimal inspectionCycle;
/**
* 物料编码
*/
private String partNo;
/**
* 物料名称
*/
private String partDesc;
/**
* 计量单位
*/
private String umId;
/**
* 质检备注
*/
private String inspectionRemark;
/**
* 到货数量
*/
private BigDecimal rollQty;
/**
* 抽样数量
*/
private BigDecimal samplingQty;
/**
* 处置措施
*/
private String disposalMeasures;
/**
* 处置说明
*/
private String disposalRemark;
/**
* 检验时间
*/
private String inspectorDate;
/**
* 标签条码
*/
private String rollNo;
/**
* 单据号
*/
private String poOrderNo;
/**
* 单据行号
*/
private String poItemNo;
/**
* 送检数量
*/
private BigDecimal rollCount;
/**
* 开始检验时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date actionDate;
/**
* 检验项目编码
*/
private String itemNo;
/**
* 检验项目名称
*/
private String itemDesc;
/**
* 标准值
*/
private String defaultValue;
/**
* 上限值
*/
private BigDecimal maxValue;
/**
* 下限值
*/
private BigDecimal minValue;
/**
* 抽样数量(项目)
*/
private BigDecimal itemSamplingQty;
/**
* 不合格数量(项目)
*/
private BigDecimal unqualifiedQuantity;
/**
* 实测值
*/
private String textValue;
/**
* 检验类型编码
*/
private String inspectionTypeNo;
/**
* 检验类型名称
*/
private String inspectionTypeName;
/**
* 工单号
*/
private String orderNo;
/**
* 派工单号
*/
private String seqNo;
/**
* 工序
*/
private String operationDesc;
/**
* 机台编码
*/
private String resourceId;
/**
* 机台名称
*/
private String resourceDesc;
/**
* 供应商编码
*/
private String supplierNo;
/**
* 供应商名称
*/
private String supplierDesc;
/**
* 质检员编码
*/
private String inspectorNo;
/**
* 质检员名称
*/
private String inspectorName;
/**
* 创建人
*/
private String createBy;
/**
* PN
*/
private String cinvSourceCode;
/**
* SKU
*/
private String sku;
/**
* 采购类型
*/
private String orderType;
/**
* 开始检验人员
*/
private String actionBy;
/**
* 送检备注
*/
private String submissionRemark;
/**
* 送检类型
*/
private String submissionType;
/**
* 加工中心
*/
private String workCenterNo;
}

18
src/main/java/com/xujie/sys/modules/pms/mapper/QcReportMapper.java

@ -0,0 +1,18 @@
package com.xujie.sys.modules.pms.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xujie.sys.modules.pms.data.QcReportData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface QcReportMapper {
IPage<QcReportData> getIQCReport(Page<QcReportData> qcReportDataPage, @Param("query") QcReportData data);
IPage<QcReportData> getIPQCReport(Page<QcReportData> qcReportDataPage, @Param("query") QcReportData data);
IPage<QcReportData> getFAIReport(Page<QcReportData> qcReportDataPage, @Param("query") QcReportData data);
IPage<QcReportData> getFQCReport(Page<QcReportData> qcReportDataPage, @Param("query") QcReportData data);
}

41
src/main/java/com/xujie/sys/modules/pms/service/Impl/QcReportServiceImpl.java

@ -0,0 +1,41 @@
package com.xujie.sys.modules.pms.service.Impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xujie.sys.common.utils.PageUtils;
import com.xujie.sys.modules.pms.data.QcReportData;
import com.xujie.sys.modules.pms.mapper.QcReportMapper;
import com.xujie.sys.modules.pms.service.QcReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class QcReportServiceImpl implements QcReportService {
@Autowired
private QcReportMapper qcReportMapper;
@Override
public PageUtils getIQCReport(QcReportData data) {
IPage<QcReportData> list = this.qcReportMapper.getIQCReport(new Page<QcReportData>(data.getPage(), data.getLimit()), data);
return new PageUtils(list);
}
@Override
public PageUtils getIPQCReport(QcReportData data) {
IPage<QcReportData> list = this.qcReportMapper.getIPQCReport(new Page<QcReportData>(data.getPage(), data.getLimit()), data);
return new PageUtils(list);
}
@Override
public PageUtils getFAIReport(QcReportData data) {
IPage<QcReportData> list = this.qcReportMapper.getFAIReport(new Page<QcReportData>(data.getPage(), data.getLimit()), data);
return new PageUtils(list);
}
@Override
public PageUtils getFQCReport(QcReportData data) {
IPage<QcReportData> list = this.qcReportMapper.getFQCReport(new Page<QcReportData>(data.getPage(), data.getLimit()), data);
return new PageUtils(list);
}
}

14
src/main/java/com/xujie/sys/modules/pms/service/QcReportService.java

@ -0,0 +1,14 @@
package com.xujie.sys.modules.pms.service;
import com.xujie.sys.common.utils.PageUtils;
import com.xujie.sys.modules.pms.data.QcReportData;
public interface QcReportService {
PageUtils getIQCReport(QcReportData data);
PageUtils getIPQCReport(QcReportData data);
PageUtils getFQCReport(QcReportData data);
PageUtils getFAIReport(QcReportData data);
}

4
src/main/resources/mapper/pms/QcMapper.xml

@ -3203,7 +3203,7 @@
a.qtyrequired, a.qtyrequired,
c.operation_desc, c.operation_desc,
J.sku, J.sku,
(select sum(roll_qty) from qc_ipqc_record where order_no = #{query.orderNo}) as sjzs
sum(roll_qty) as sjzs
FROM FROM
soscheduledrouting AS a soscheduledrouting AS a
inner JOIN so_routing AS c ON c.order_no = a.orderno inner JOIN so_routing AS c ON c.order_no = a.orderno
@ -3213,6 +3213,7 @@
AND a.part_no = J.part_no AND a.part_no = J.part_no
inner JOIN shoporder AS t ON t.orderno = a.orderno inner JOIN shoporder AS t ON t.orderno = a.orderno
AND a.site = t.site AND a.site = t.site
left join qc_ipqc_record as r on a.site = r.site and a.seqno = r.seq_no
WHERE WHERE
a.site = #{query.site} a.site = #{query.site}
<if test="query.status != null and query.status != ''"> <if test="query.status != null and query.status != ''">
@ -3236,6 +3237,7 @@
<if test="query.operationDesc != null and query.operationDesc != ''"> <if test="query.operationDesc != null and query.operationDesc != ''">
AND c.operation_desc LIKE '%' + #{query.operationDesc} + '%' AND c.operation_desc LIKE '%' + #{query.operationDesc} + '%'
</if> </if>
group by a.seqno, a.orderno, J.part_no, J.part_desc, t.lotsize, a.qtyrequired, c.operation_desc, J.sku
</select> </select>
<select id="searchPartInfo" parameterType="com.xujie.sys.modules.pms.data.QcFAIRecordData" resultType="com.xujie.sys.modules.pms.data.QcFAIRecordData"> <select id="searchPartInfo" parameterType="com.xujie.sys.modules.pms.data.QcFAIRecordData" resultType="com.xujie.sys.modules.pms.data.QcFAIRecordData">
select select

461
src/main/resources/mapper/pms/QcReportMapper.xml

@ -0,0 +1,461 @@
<?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.xujie.sys.modules.pms.mapper.QcReportMapper">
<!-- 获取IQC报表 -->
<select id="getIQCReport" parameterType="QcReportData" resultType="QcReportData">
SELECT
a.inspection_no,
a.site,
a.bu_no,
dbo.get_bu_desc(a.site, a.bu_no) as buDesc,
a.state,
a.inspection_result,
a.create_date as taskDate,
a.inspection_cycle,
a.part_no,
a.part_desc,
dbo.qc_get_cinv_source_code(a.part_no) as cinvSourceCode,
dbo.qc_get_sku(a.part_no) as sku,
dbo.qc_get_part_umid(a.site, a.part_no) as umId,
a.inspection_remark,
a.roll_qty,
a.sampling_qty,
a.disposal_measures,
a.disposal_remark,
a.inspector_date,
a.inspector_no,
dbo.qc_get_inspector_name(a.site, a.inspector_no) as inspectorName,
a.roll_no,
a.supplier_no,
dbo.qc_get_supplier_name(a.site, a.supplier_no) as supplierDesc,
a.po_orderNo,
a.po_itemNo,
a.roll_count,
dbo.qc_get_order_type(a.site, a.po_orderNo, a.po_itemNo) as orderType,
a.action_date,
a.action_by,
a.submission_remark,
a.submission_type,
b.item_no,
b.item_desc,
b.default_value,
b.max_value,
b.min_value,
b.sampling_qty as itemSamplingQty,
b.unqualified_quantity,
CASE WHEN b.value_type_db = 'T' THEN b.text_value
WHEN b.value_type_db = 'N' THEN CONVERT(varchar, b.number_value, 126)
END as textValue
FROM qc_iqc_record as a
LEFT JOIN qc_iqc_detailed_record b ON a.site = b.site AND a.bu_no = b.bu_no AND a.inspection_no = b.inspection_no
<where>
a.site in (select site from eam_access_site where username = #{query.userName})
and (a.site + '-' + a.bu_no) in (select * from dbo.query_bu(#{query.userName}))
<if test="query.buDesc != null and query.buDesc != ''">
AND dbo.get_bu_desc (a.site, a.bu_no) = #{query.buDesc}
</if>
<if test = "query.inspectionNo != null and query.inspectionNo != ''">
AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
</if>
<if test = "query.states != null and query.states.size > 0">
AND a.state in
<foreach item="item" collection="query.states" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test = "query.inspectionResult != null and query.inspectionResult != ''">
AND a.inspection_result = #{query.inspectionResult}
</if>
<if test = "query.partNo != null and query.partNo != ''">
AND a.part_no LIKE '%' + #{query.partNo} + '%'
</if>
<if test = "query.partDesc != null and query.partDesc != ''">
AND a.part_desc LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
AND dbo.qc_get_cinv_source_code(a.part_no) LIKE '%' + #{query.cinvSourceCode} + '%'
</if>
<if test = "query.sku != null and query.sku != ''">
AND dbo.qc_get_sku(a.part_no) LIKE '%' + #{query.sku} + '%'
</if>
<if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
AND a.disposal_measures = #{query.disposalMeasures}
</if>
<if test = "query.inspectorName != null and query.inspectorName != ''">
AND dbo.qc_get_inspector_name(a.site, a.inspector_no) LIKE '%' + #{query.inspectorName} + '%'
</if>
<if test="query.startDate != null">
AND a.inspector_date >= #{query.startDate}
</if>
<if test="query.endDate != null">
AND #{query.endDate} >= a.inspector_date
</if>
<if test="query.startDate2 != null">
AND a.create_date >= #{query.startDate2}
</if>
<if test="query.endDate2 != null">
AND #{query.endDate2} >= a.create_date
</if>
<if test = "query.poOrderNo != null and query.poOrderNo != ''">
AND a.po_orderNo LIKE #{query.poOrderNo}
</if>
<if test = "query.poItemNo != null and query.poItemNo != ''">
AND a.po_itemNo LIKE #{query.poItemNo}
</if>
<if test = "query.orderType != null and query.orderType != ''">
AND dbo.qc_get_order_type(a.site, a.po_orderNo, a.po_itemNo) = #{query.orderType}
</if>
<if test = "query.submissionType != null and query.submissionType != ''">
AND a.submission_type = #{query.submissionType}
</if>
</where>
ORDER BY
CASE WHEN a.state = '待检验' THEN 1
WHEN a.state = '待审核' THEN 2
WHEN a.state = '已完成' THEN 3
END, a.create_date desc
</select>
<!-- 获取IPQC报表 -->
<select id="getIPQCReport" parameterType="QcReportData" resultType="QcReportData">
SELECT
a.inspection_no,
a.site,
a.bu_no,
dbo.get_bu_desc(a.site, a.bu_no) as buDesc,
a.state,
a.inspection_result,
a.task_date,
a.inspection_type_no,
a.inspection_cycle,
a.order_no,
a.operation_desc,
a.resource_id,
dbo.qc_get_resource_desc(a.site, a.resource_id, a.work_center_no) as resourceDesc,
a.part_no,
dbo.qc_get_part_desc(a.part_no) as part_desc,
dbo.qc_get_cinv_source_code(a.part_no) as cinvSourceCode,
dbo.qc_get_sku(part_no) as sku,
a.inspection_remark,
a.roll_qty,
a.sampling_qty,
a.disposal_measures,
a.disposal_remark,
a.inspector_date,
a.inspector_no,
dbo.qc_get_inspector_name(a.site, a.inspector_no) as inspectorName,
dbo.qc_get_spec(a.part_no) as spec,
a.seq_no,
a.batch_roll_no,
a.special_requirements,
a.work_center_no,
a.roll_no,
a.um_id,
dbo.qc_get_um_name(a.site, a.um_id) as umName,
a.action_date,
a.action_by,
b.item_no,
b.item_desc,
b.default_value,
b.max_value,
b.min_value,
b.sampling_qty as itemSamplingQty,
b.unqualified_quantity,
CASE WHEN b.value_type_db = 'T' THEN b.text_value
WHEN b.value_type_db = 'N' THEN CONVERT(varchar, b.number_value, 126)
END as textValue
FROM qc_ipqc_record as a
LEFT JOIN qc_ipqc_detailed_record b ON a.site = b.site AND a.bu_no = b.bu_no AND a.inspection_no = b.inspection_no
<where>
a.site in (select site from eam_access_site where username = #{query.userName})
and (a.site + '-' + a.bu_no) in (select * from dbo.query_bu(#{query.userName}))
<if test="query.buDesc != null and query.buDesc != ''">
AND dbo.get_bu_desc (a.site, a.bu_no) = #{query.buDesc}
</if>
<if test = "query.inspectionNo != null and query.inspectionNo != ''">
AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
</if>
<if test = "query.partNo != null and query.partNo != ''">
AND a.part_no LIKE '%' + #{query.partNo} + '%'
</if>
<if test = "query.partDesc != null and query.partDesc != ''">
AND dbo.qc_get_part_desc(a.part_no) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
AND dbo.qc_get_cinv_source_code(a.part_no) LIKE '%' + #{query.cinvSourceCode} + '%'
</if>
<if test = "query.sku != null and query.sku != ''">
AND dbo.qc_get_sku(a.part_no) LIKE '%' + #{query.sku} + '%'
</if>
<if test = "query.states != null and query.states.size > 0">
AND a.state in
<foreach item="item" collection="query.states" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test = "query.inspectionTypeNo != null and query.inspectionTypeNo != ''">
AND a.inspection_type_no = #{query.inspectionTypeNo}
</if>
<if test = "query.inspectionResult != null and query.inspectionResult != ''">
AND a.inspection_result = #{query.inspectionResult}
</if>
<if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
AND a.disposal_measures = #{query.disposalMeasures}
</if>
<if test = "query.orderNo != null and query.orderNo != ''">
AND a.order_no LIKE '%' + #{query.orderNo} + '%'
</if>
<if test = "query.seqNo != null and query.seqNo != ''">
AND a.seq_no LIKE '%' + #{query.seqNo} + '%'
</if>
<if test = "query.operationDesc != null and query.operationDesc != ''">
AND a.operation_desc LIKE #{query.operationDesc}
</if>
<if test="query.startDate != null">
AND a.inspector_date >= #{query.startDate}
</if>
<if test="query.endDate != null">
AND #{query.endDate} >= a.inspector_date
</if>
<if test="query.startDate2 != null">
AND a.task_date >= #{query.startDate2}
</if>
<if test="query.endDate2 != null">
AND #{query.endDate2} >= a.task_date
</if>
</where>
ORDER BY
CASE WHEN a.state = '待检验' THEN 1
WHEN a.state = '待审核' THEN 2
WHEN a.state = '已完成' THEN 3
END, a.task_date desc
</select>
<!-- 获取FAI报表 -->
<select id="getFAIReport" parameterType="QcReportData" resultType="QcReportData">
SELECT
a.inspection_no,
a.site,
a.bu_no,
dbo.get_bu_desc(a.site, a.bu_no) as buDesc,
a.state,
a.inspection_result,
a.task_date,
a.inspection_type_no,
dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) as inspectionTypeName,
a.inspection_cycle,
a.order_no,
a.operation_desc,
a.resource_id,
dbo.qc_get_resource_desc(a.site, a.resource_id, a.work_center_no) as resourceDesc,
a.part_no,
dbo.qc_get_part_desc(a.part_no) as part_desc,
a.inspection_remark,
a.roll_qty,
a.sampling_qty,
a.disposal_measures,
a.disposal_remark,
a.inspector_date,
a.inspector_no,
dbo.qc_get_inspector_name(a.site, a.inspector_no) as inspectorName,
dbo.qc_get_cinv_source_code(a.part_no) as cinvSourceCode,
dbo.qc_get_sku(a.part_no) as sku,
dbo.qc_get_spec(a.part_no) as spec,
a.seq_no,
a.batch_roll_no,
a.special_requirements,
a.work_center_no,
a.roll_no,
a.um_id,
dbo.qc_get_um_name(a.site, a.um_id) as umName,
a.action_date,
a.action_by,
b.item_no,
b.item_desc,
b.default_value,
b.max_value,
b.min_value,
b.sampling_qty as itemSamplingQty,
b.unqualified_quantity,
CASE WHEN b.value_type_db = 'T' THEN b.text_value
WHEN b.value_type_db = 'N' THEN CONVERT(varchar, b.number_value, 126)
END as textValue
FROM qc_fai_record as a
LEFT JOIN qc_fai_detailed_record b ON a.site = b.site AND a.bu_no = b.bu_no AND a.inspection_no = b.inspection_no
<where>
a.site in (select site from eam_access_site where username = #{query.userName})
and (a.site + '-' + a.bu_no) in (select * from dbo.query_bu(#{query.userName}))
<if test="query.buDesc != null and query.buDesc != ''">
AND dbo.get_bu_desc (a.site, a.bu_no) = #{query.buDesc}
</if>
<if test = "query.inspectionNo != null and query.inspectionNo != ''">
AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
</if>
<if test = "query.partNo != null and query.partNo != ''">
AND a.part_no LIKE '%' + #{query.partNo} + '%'
</if>
<if test = "query.partDesc != null and query.partDesc != ''">
AND dbo.Get_Part_DescSpec(a.site, a.part_no) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
AND dbo.qc_get_cinv_source_code(a.part_no) LIKE '%' + #{query.cinvSourceCode} + '%'
</if>
<if test = "query.sku != null and query.sku != ''">
AND dbo.qc_get_sku(a.part_no) LIKE '%' + #{query.sku} + '%'
</if>
<if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
</if>
<if test = "query.states != null and query.states.size > 0">
AND a.state in
<foreach item="item" collection="query.states" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test = "query.inspectionResult != null and query.inspectionResult != ''">
AND a.inspection_result = #{query.inspectionResult}
</if>
<if test = "query.orderNo != null and query.orderNo != ''">
AND a.order_no LIKE '%' + #{query.orderNo} + '%'
</if>
<if test = "query.seqNo != null and query.seqNo != ''">
AND a.seq_no LIKE '%' + #{query.seqNo} + '%'
</if>
<if test = "query.operationDesc != null and query.operationDesc != ''">
AND a.operation_desc LIKE '%' + #{query.operationDesc} + '%'
</if>
<if test="query.startDate != null">
AND a.inspector_date >= #{query.startDate}
</if>
<if test="query.endDate != null">
AND #{query.endDate} >= a.inspector_date
</if>
<if test="query.startDate2 != null">
AND a.task_date >= #{query.startDate2}
</if>
<if test="query.endDate2 != null">
AND #{query.endDate2} >= a.task_date
</if>
</where>
ORDER BY
CASE WHEN a.state = '待检验' THEN 1
WHEN a.state = '待审核' THEN 2
WHEN a.state = '已完成' THEN 3
END, a.task_date desc
</select>
<!-- 获取FQC报表 -->
<select id="getFQCReport" parameterType="QcReportData" resultType="QcReportData">
SELECT
a.inspection_no,
a.site,
a.bu_no,
dbo.get_bu_desc(a.site, a.bu_no) as buDesc,
a.state,
a.inspection_result,
a.task_date,
a.inspection_type_no,
dbo.qc_get_inspection_type_name(a.site, a.inspection_type_no) as inspectionTypeName,
a.inspection_cycle,
a.order_no,
a.operation_desc,
a.resource_id,
dbo.qc_get_resource_desc(a.site, a.resource_id, a.work_center_no) as resourceDesc,
a.part_no,
dbo.qc_get_part_desc(a.part_no) as part_desc,
a.inspection_remark,
a.roll_qty,
a.sampling_qty,
a.disposal_measures,
a.disposal_remark,
a.inspector_date,
a.inspector_no,
dbo.qc_get_inspector_name(a.site, a.inspector_no) as inspectorName,
dbo.qc_get_cinv_source_code(a.part_no) as cinvSourceCode,
dbo.qc_get_sku(a.part_no) as sku,
dbo.qc_get_spec(a.part_no) as spec,
a.seq_no,
a.batch_roll_no,
a.special_requirements,
a.work_center_no,
a.roll_no,
a.um_id,
dbo.qc_get_um_name(a.site, a.um_id) as umName,
a.action_date,
a.action_by,
b.item_no,
b.item_desc,
b.default_value,
b.max_value,
b.min_value,
b.sampling_qty as itemSamplingQty,
b.unqualified_quantity,
CASE WHEN b.value_type_db = 'T' THEN b.text_value
WHEN b.value_type_db = 'N' THEN CONVERT(varchar, b.number_value, 126)
END as textValue
FROM qc_fqc_record as a
LEFT JOIN qc_fqc_detailed_record b ON a.site = b.site AND a.bu_no = b.bu_no AND a.inspection_no = b.inspection_no
<where>
a.site in (select site from eam_access_site where username = #{query.userName})
and (a.site + '-' + a.bu_no) in (select * from dbo.query_bu(#{query.userName}))
<if test="query.buDesc != null and query.buDesc != ''">
AND dbo.get_bu_desc (a.site, a.bu_no) = #{query.buDesc}
</if>
<if test = "query.inspectionNo != null and query.inspectionNo != ''">
AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%'
</if>
<if test = "query.partNo != null and query.partNo != ''">
AND a.part_no LIKE '%' + #{query.partNo} + '%'
</if>
<if test = "query.partDesc != null and query.partDesc != ''">
AND dbo.qc_get_part_desc(a.part_no) LIKE '%' + #{query.partDesc} + '%'
</if>
<if test = "query.cinvSourceCode != null and query.cinvSourceCode != ''">
AND dbo.qc_get_cinv_source_code(a.part_no) LIKE '%' + #{query.cinvSourceCode} + '%'
</if>
<if test = "query.sku != null and query.sku != ''">
AND dbo.qc_get_sku(a.part_no) LIKE '%' + #{query.sku} + '%'
</if>
<if test = "query.disposalMeasures != null and query.disposalMeasures != ''">
AND a.disposal_measures LIKE '%' + #{query.disposalMeasures} + '%'
</if>
<if test = "query.states != null and query.states.size > 0">
AND a.state in
<foreach item="item" collection="query.states" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test = "query.inspectionResult != null and query.inspectionResult != ''">
AND a.inspection_result = #{query.inspectionResult}
</if>
<if test = "query.orderNo != null and query.orderNo != ''">
AND a.order_no LIKE '%' + #{query.orderNo} + '%'
</if>
<if test = "query.seqNo != null and query.seqNo != ''">
AND a.seq_no LIKE '%' + #{query.seqNo} + '%'
</if>
<if test = "query.operationDesc != null and query.operationDesc != ''">
AND a.operation_desc LIKE '%' + #{query.operationDesc} + '%'
</if>
<if test="query.startDate != null">
AND a.inspector_date >= #{query.startDate}
</if>
<if test="query.endDate != null">
AND #{query.endDate} >= a.inspector_date
</if>
<if test="query.startDate2 != null">
AND a.task_date >= #{query.startDate2}
</if>
<if test="query.endDate2 != null">
AND #{query.endDate2} >= a.task_date
</if>
</where>
ORDER BY
CASE WHEN a.state = '待检验' THEN 1
WHEN a.state = '待审核' THEN 2
WHEN a.state = '已完成' THEN 3
END, a.task_date desc
</select>
</mapper>
Loading…
Cancel
Save