From 827657c43d606120a825f8c6fe283c120c4cd1bd Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 4 Jan 2024 15:44:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A1=E6=A3=80=E4=B8=8D=E8=89=AF=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=9B=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/quality/ChartSeriesDTO.java | 18 ++++ .../controller/QcStaticTableController.java | 13 +++ .../quality/domain/QcCheckReportIncome.java | 9 ++ .../op/quality/domain/QcCheckTaskProduce.java | 9 ++ .../com/op/quality/domain/QcStaticTable.java | 20 ++++ .../quality/mapper/QcStaticTableMapper.java | 6 ++ .../service/IQcStaticTableService.java | 3 + .../impl/QcCheckTaskIncomeServiceImpl.java | 44 ++++----- .../impl/QcStaticTableServiceImpl.java | 99 ++++++++++++++++++- .../quality/QcCheckReportIncomeMapper.xml | 4 +- .../quality/QcCheckTaskProduceMapper.xml | 4 +- .../quality/QcCheckTypeProjectMapper.xml | 4 +- .../mapper/quality/QcStaticTableMapper.xml | 58 ++++++++--- 13 files changed, 248 insertions(+), 43 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartSeriesDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartSeriesDTO.java index 24e016d77..2751d6c1e 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartSeriesDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartSeriesDTO.java @@ -12,6 +12,24 @@ public class ChartSeriesDTO { private List yAxisData; private List series; + private List legendData; + private List xAxisData; + + public List getxAxisData() { + return xAxisData; + } + + public void setxAxisData(List xAxisData) { + this.xAxisData = xAxisData; + } + + public List getLegendData() { + return legendData; + } + + public void setLegendData(List legendData) { + this.legendData = legendData; + } public List getyAxisData() { return yAxisData; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index bc828858c..3f3f190c6 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.DateUtils; import com.op.system.api.domain.quality.ChartDTO; +import com.op.system.api.domain.quality.ChartSeriesDTO; import com.op.system.api.domain.quality.FactoryDto; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -251,4 +252,16 @@ public class QcStaticTableController extends BaseController { List list = qcStaticTableService.getXJCheckTableDetail(qcStaticTable); return list; } + /**巡检小时不良**/ + @GetMapping("/getXJChartData") + public ChartSeriesDTO getXJChartData(QcStaticTable qcStaticTable) { + if(StringUtils.isEmpty(qcStaticTable.getYmdms())){ + LocalDate date = LocalDate.now(); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String ymStr = dtf.format(date); + qcStaticTable.setYmdms(ymStr);//end + } + ChartSeriesDTO dto = qcStaticTableService.getXJChartData(qcStaticTable); + return dto; + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java index 6bf0ff3f5..759f4db95 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java @@ -124,6 +124,15 @@ public class QcCheckReportIncome extends BaseEntity { private String checkTimeEnd; private String typeCode;//大类 private String checkType;//小类 + private String checkName; + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } public BigDecimal getSampleQuality() { return sampleQuality; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java index 47445f58b..6db2aca50 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java @@ -144,6 +144,15 @@ public class QcCheckTaskProduce extends BaseEntity { @Excel(name = "C类不合格数量") private BigDecimal cNoOkquality; + private String checkName; + + public String getCheckName() { + return checkName; + } + + public void setCheckName(String checkName) { + this.checkName = checkName; + } public String getOrderType() { return orderType; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java index e3e30f7da..66155a454 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.op.common.core.annotation.Excel; import com.op.common.core.web.domain.BaseEntity; import com.op.system.api.domain.quality.ChartDTO; +import com.op.system.api.domain.quality.ChartSeriesDTO; import java.math.BigDecimal; import java.util.Date; @@ -83,6 +84,24 @@ public class QcStaticTable extends BaseEntity { private String column180190; private String column190200; private String column200210; + private String startDateStr; + private String endDateStr; + + public String getStartDateStr() { + return startDateStr; + } + + public void setStartDateStr(String startDateStr) { + this.startDateStr = startDateStr; + } + + public String getEndDateStr() { + return endDateStr; + } + + public void setEndDateStr(String endDateStr) { + this.endDateStr = endDateStr; + } public String getColumn080090() { return column080090; @@ -531,4 +550,5 @@ public class QcStaticTable extends BaseEntity { public void setSupplierName(String supplierName) { this.supplierName = supplierName; } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java index c2f7555ef..d6dea4e39 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java @@ -45,4 +45,10 @@ public interface QcStaticTableMapper { List getXJProjects(QcStaticTable qcStaticTable); @MapKey("ymdms") Map getProjectDetail(QcStaticTable qcStaticTable); + + List getBatchnos(String orderNo); + + List getLegendData(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getXJMapData(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java index a2e6ab7ff..e769347cc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import com.op.quality.domain.QcStaticTable; +import com.op.system.api.domain.quality.ChartSeriesDTO; import com.op.system.api.domain.quality.FactoryDto; /** @@ -33,4 +34,6 @@ public interface IQcStaticTableService { List getXJCheckTableList(QcStaticTable qcStaticTable); List getXJCheckTableDetail(QcStaticTable qcStaticTable); + + ChartSeriesDTO getXJChartData(QcStaticTable qcStaticTable); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index bca08e497..2562bccc9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -389,7 +389,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { //发起来料检验OA流程 Map paramMap = new HashMap<>(); - paramMap.put("user",qcCheckTaskIncome.getUpdateBy());//提交人工号 + paramMap.put("user","019047");//提交人工号qcCheckTaskIncome.getUpdateBy() paramMap.put("requestLevel",0);//流程紧急度 paramMap.put("requestName","ZL0010-来料检验不合格审批流程(定单:"+qcCheckTaskIncome.getOrderNo()+")");//流程名称 paramMap.put("workflowld","26258");//该流程对应的唯- workFlowld @@ -397,10 +397,10 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { StringBuffer mainObject = new StringBuffer(); mainObject.append("{"); mainObject.append("\"CQ\":"+1);//厂区 - mainObject.append("\"LLLB\":"+0);//来料类别【0、1】 - mainObject.append("\"MATNR\""+"\"000000010101003200\"");//物料编码 + mainObject.append(",\"LLLB\":"+0);//来料类别【0、1】 + mainObject.append(",\"MATNR\":"+"\"000000010101003200\"");//物料编码 //mainObject.append("\"MAKTX\""+MATNR);//物料名称 - mainObject.append("{"); + mainObject.append("}"); paramMap.put("mainObject",mainObject.toString()); logger.info("流程Id 26258:"+ JSONObject.toJSONString(paramMap)); AjaxResult oaR = remoteOpenService.OAInspection(paramMap); @@ -549,24 +549,24 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); logger.info("qc_check_unqualified:"+n); - //发起来料检验OA流程 - Map paramMap = new HashMap<>(); - paramMap.put("user",updateBy);//提交人工号 - paramMap.put("requestLevel",0);//流程紧急度 - paramMap.put("requestName","ZL0010-来料检验不合格审批流程(定单:"+qcCheckTaskIncome.getOrderNo()+")");//流程名称 - paramMap.put("workflowld","26258");//该流程对应的唯- workFlowld - - StringBuffer mainObject = new StringBuffer(); - mainObject.append("{"); - mainObject.append("\"CQ\":"+1);//厂区 - mainObject.append("\"LLLB\":"+0);//来料类别【0、1】 - mainObject.append("\"MATNR\""+"\"000000010101003200\"");//物料编码 - //mainObject.append("\"MAKTX\""+MATNR);//物料名称 - mainObject.append("{"); - paramMap.put("mainObject",mainObject.toString()); - - AjaxResult oaR = remoteOpenService.OAInspection(paramMap); - logger.info("流程Id 26258:"+ JSONObject.toJSONString(oaR)); +// //发起来料检验OA流程 +// Map paramMap = new HashMap<>(); +// paramMap.put("user",updateBy);//提交人工号 +// paramMap.put("requestLevel",0);//流程紧急度 +// paramMap.put("requestName","ZL0010-来料检验不合格审批流程(定单:"+qcCheckTaskIncome.getOrderNo()+")");//流程名称 +// paramMap.put("workflowld","26258");//该流程对应的唯- workFlowld +// +// StringBuffer mainObject = new StringBuffer(); +// mainObject.append("{"); +// mainObject.append("\"CQ\":"+1);//厂区 +// mainObject.append("\"LLLB\":"+0);//来料类别【0、1】 +// mainObject.append("\"MATNR\""+"\"000000010101003200\"");//物料编码 +// //mainObject.append("\"MAKTX\""+MATNR);//物料名称 +// mainObject.append("{"); +// paramMap.put("mainObject",mainObject.toString()); +// +// AjaxResult oaR = remoteOpenService.OAInspection(paramMap); +// logger.info("流程Id 26258:"+ JSONObject.toJSONString(oaR)); } return n ; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 4c77a4bc0..d70717243 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -1,11 +1,20 @@ package com.op.quality.service.impl; import java.math.BigDecimal; -import java.util.List; -import java.util.Map; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; +import com.op.quality.domain.QcCheckTaskIncome; +import com.op.system.api.domain.quality.ChartDTO; +import com.op.system.api.domain.quality.ChartSeriesDTO; import com.op.system.api.domain.quality.FactoryDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -141,6 +150,14 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { @DS("#header.poolName") public List getXJCheckTableList(QcStaticTable qcStaticTable) { List tabledtos = qcStaticTableMapper.getXJCheckTableList(qcStaticTable); + for(QcStaticTable tabledto:tabledtos){ + List batchnos = qcStaticTableMapper.getBatchnos(tabledto.getOrderNo()); + String ordernoStr = ""; + for(String batchno:batchnos){ + ordernoStr += batchno+";"; + }; + tabledto.setIncomeBatchNo(ordernoStr); + } return tabledtos; } @@ -253,5 +270,83 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { project.setColumn200210("-"); } } + /**巡检小时不良**/ + @Override + @DS("#header.poolName") + public ChartSeriesDTO getXJChartData(QcStaticTable qcStaticTable) { + ChartSeriesDTO seriesDTO = new ChartSeriesDTO(); + //获取当天参与生产的车间 + List legends = qcStaticTableMapper.getLegendData(qcStaticTable); + List legendData = new ArrayList<>(); + if(!CollectionUtils.isEmpty(legends)){ + legendData=legends.stream().map(QcStaticTable::getSupplierName).collect(Collectors.toList()); + }else{ + return null; + } + seriesDTO.setLegendData(legendData); + //横轴时间 + qcStaticTable.setStartDateStr(qcStaticTable.getYmdms()+" 08:00:00"); + qcStaticTable.setEndDateStr(qcStaticTable.getYmdms()+" 08:00:00"); + List xAxisData = this.getHourProductionTitle(qcStaticTable); + seriesDTO.setxAxisData(xAxisData); + //数据 + Map dataMap = qcStaticTableMapper.getXJMapData(qcStaticTable); + List series = new ArrayList<>(); + ChartDTO serie = null; + for(QcStaticTable legend:legends){ + serie= new ChartDTO(); + serie.setName(legend.getSupplierName()); + List data = new ArrayList<>(); + for(String houreName:xAxisData){ + String key = legend.getSupplierCode()+houreName.replace("时",""); + QcStaticTable qt = dataMap.get(key); + if(qt!=null&&StringUtils.isNotBlank(qt.getSampleQuality())){ + BigDecimal noOkRate = new BigDecimal(qt.getNoOkNums()) + .multiply(new BigDecimal(100)) + .divide(new BigDecimal(qt.getSampleQuality()),2,BigDecimal.ROUND_HALF_UP); + data.add(noOkRate.doubleValue()); + }else{ + data.add(0.00); + } + serie.setData(data); + } + serie.setData(data); + series.add(serie); + } + seriesDTO.setSeries(series); + + return seriesDTO; + } + + private List getHourProductionTitle(QcStaticTable qcStaticTable) { + + // 返回的日期集合 + List dayHours = new ArrayList(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH"); + try { + + Date start = dateFormat.parse(qcStaticTable.getStartDateStr());//开始 + + Date end = dateFormat.parse(qcStaticTable.getEndDateStr());//结束 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(end); + calendar.add(Calendar.HOUR_OF_DAY, 14); + end = calendar.getTime(); + + Calendar tempStart = Calendar.getInstance(); + tempStart.setTime(start); + + Calendar tempEnd = Calendar.getInstance(); + tempEnd.setTime(end); + while (tempStart.before(tempEnd)) { + dayHours.add(dateFormat.format(tempStart.getTime()).split(" ")[1]+"时"); + tempStart.add(Calendar.HOUR_OF_DAY, 1); + } + } catch (ParseException e) { + e.printStackTrace(); + } + + return dayHours; + } } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml index dcdc372f9..a7dd6cec8 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml @@ -34,6 +34,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -49,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status,qct.sample_quality, qct.create_by,qct.create_time, qct.update_by, qct.update_time,qct.check_type, - q.type_code + q.type_code,q.check_name from qc_check_task qct left join qc_check_type q on q.id = qct.check_type diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 1ad7a3206..7bf0cd55c 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -36,6 +36,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -56,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.create_by,qct.create_time, qct.update_by, qct.update_time, qct.check_type,qct.sample_quality,qct.noOk_quality, qct.aNoOkquality,qct.bNoOkquality,qct.cNoOkquality, - q.type_code + q.type_code,q.check_name from qc_check_task qct left join qc_check_type q on q.id = qct.check_type diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml index 672a754e6..6563430fb 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml @@ -63,9 +63,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ctp.sample_num, ctp.sort FROM qc_check_type_project ctp - LEFT JOIN qc_check_project cp ON ctp.project_id = cp.id AND cp.del_flag = '0' + LEFT JOIN qc_check_project cp ON ctp.project_id = cp.id - AND ctp.del_flag = '0' + AND ctp.del_flag = '0' AND cp.del_flag = '0' and ctp.project_id = #{projectId} and ctp.type_id = #{typeId} and ctp.standard_value like concat('%', #{standardValue}, '%') diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml index 739fe1347..faa8169c5 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml @@ -132,26 +132,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + +