From f8013a0d8b0fcbf8513550e1e46cdb860f52c1ba Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Tue, 30 Jul 2024 16:59:10 +0800 Subject: [PATCH] =?UTF-8?q?2024-07-30=20QMS=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/controller/QcReportController.java | 65 +++ .../sys/modules/pms/data/QcReportData.java | 247 ++++++++++ .../modules/pms/mapper/QcReportMapper.java | 18 + .../pms/service/Impl/QcReportServiceImpl.java | 41 ++ .../modules/pms/service/QcReportService.java | 14 + src/main/resources/mapper/pms/QcMapper.xml | 4 +- .../resources/mapper/pms/QcReportMapper.xml | 461 ++++++++++++++++++ 7 files changed, 849 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/xujie/sys/modules/pms/controller/QcReportController.java create mode 100644 src/main/java/com/xujie/sys/modules/pms/data/QcReportData.java create mode 100644 src/main/java/com/xujie/sys/modules/pms/mapper/QcReportMapper.java create mode 100644 src/main/java/com/xujie/sys/modules/pms/service/Impl/QcReportServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/pms/service/QcReportService.java create mode 100644 src/main/resources/mapper/pms/QcReportMapper.xml diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/QcReportController.java b/src/main/java/com/xujie/sys/modules/pms/controller/QcReportController.java new file mode 100644 index 00000000..2fa0ac95 --- /dev/null +++ b/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); + } + +} diff --git a/src/main/java/com/xujie/sys/modules/pms/data/QcReportData.java b/src/main/java/com/xujie/sys/modules/pms/data/QcReportData.java new file mode 100644 index 00000000..ec0e48cf --- /dev/null +++ b/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 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; +} diff --git a/src/main/java/com/xujie/sys/modules/pms/mapper/QcReportMapper.java b/src/main/java/com/xujie/sys/modules/pms/mapper/QcReportMapper.java new file mode 100644 index 00000000..78de7f75 --- /dev/null +++ b/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 getIQCReport(Page qcReportDataPage, @Param("query") QcReportData data); + + IPage getIPQCReport(Page qcReportDataPage, @Param("query") QcReportData data); + + IPage getFAIReport(Page qcReportDataPage, @Param("query") QcReportData data); + + IPage getFQCReport(Page qcReportDataPage, @Param("query") QcReportData data); +} diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcReportServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcReportServiceImpl.java new file mode 100644 index 00000000..77ba06ee --- /dev/null +++ b/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 list = this.qcReportMapper.getIQCReport(new Page(data.getPage(), data.getLimit()), data); + return new PageUtils(list); + } + + @Override + public PageUtils getIPQCReport(QcReportData data) { + IPage list = this.qcReportMapper.getIPQCReport(new Page(data.getPage(), data.getLimit()), data); + return new PageUtils(list); + } + + @Override + public PageUtils getFAIReport(QcReportData data) { + IPage list = this.qcReportMapper.getFAIReport(new Page(data.getPage(), data.getLimit()), data); + return new PageUtils(list); + } + + @Override + public PageUtils getFQCReport(QcReportData data) { + IPage list = this.qcReportMapper.getFQCReport(new Page(data.getPage(), data.getLimit()), data); + return new PageUtils(list); + } +} diff --git a/src/main/java/com/xujie/sys/modules/pms/service/QcReportService.java b/src/main/java/com/xujie/sys/modules/pms/service/QcReportService.java new file mode 100644 index 00000000..7eff551d --- /dev/null +++ b/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); +} diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index 675e5caa..4413fe5c 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -3203,7 +3203,7 @@ a.qtyrequired, c.operation_desc, J.sku, - (select sum(roll_qty) from qc_ipqc_record where order_no = #{query.orderNo}) as sjzs + sum(roll_qty) as sjzs FROM soscheduledrouting AS a inner JOIN so_routing AS c ON c.order_no = a.orderno @@ -3213,6 +3213,7 @@ AND a.part_no = J.part_no inner JOIN shoporder AS t ON t.orderno = a.orderno AND a.site = t.site + left join qc_ipqc_record as r on a.site = r.site and a.seqno = r.seq_no WHERE a.site = #{query.site} @@ -3236,6 +3237,7 @@ AND c.operation_desc LIKE '%' + #{query.operationDesc} + '%' + group by a.seqno, a.orderno, J.part_no, J.part_desc, t.lotsize, a.qtyrequired, c.operation_desc, J.sku + 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 + + 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})) + + AND dbo.get_bu_desc (a.site, a.bu_no) = #{query.buDesc} + + + AND a.inspection_no LIKE '%' + #{query.inspectionNo} + '%' + + + AND a.state in + + #{item} + + + + AND a.inspection_result = #{query.inspectionResult} + + + AND a.part_no LIKE '%' + #{query.partNo} + '%' + + + AND a.part_desc LIKE '%' + #{query.partDesc} + '%' + + + AND dbo.qc_get_cinv_source_code(a.part_no) LIKE '%' + #{query.cinvSourceCode} + '%' + + + AND dbo.qc_get_sku(a.part_no) LIKE '%' + #{query.sku} + '%' + + + AND a.disposal_measures = #{query.disposalMeasures} + + + AND dbo.qc_get_inspector_name(a.site, a.inspector_no) LIKE '%' + #{query.inspectorName} + '%' + + + AND a.inspector_date >= #{query.startDate} + + + AND #{query.endDate} >= a.inspector_date + + + AND a.create_date >= #{query.startDate2} + + + AND #{query.endDate2} >= a.create_date + + + AND a.po_orderNo LIKE #{query.poOrderNo} + + + AND a.po_itemNo LIKE #{query.poItemNo} + + + AND dbo.qc_get_order_type(a.site, a.po_orderNo, a.po_itemNo) = #{query.orderType} + + + AND a.submission_type = #{query.submissionType} + + + ORDER BY + CASE WHEN a.state = '待检验' THEN 1 + WHEN a.state = '待审核' THEN 2 + WHEN a.state = '已完成' THEN 3 + END, a.create_date desc + + + + + + + + + + +