diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java index a0500086..dc0742c6 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java @@ -456,6 +456,20 @@ public class ReportController { } } + /** + * 质量问题统计表 + * @param + * @return + */ + @PostMapping("/qualityProblemsInfoReport") + public R qualityProblemsInfoReport(@RequestParam(required = false) Map paramMap){ + try { + return R.ok(reportService.qualityProblemsInfoReport(paramMap)); + } catch (Exception e) { + return R.failed(e.getMessage()); + } + } + /** * 项目生产加工周期看板 * @param @@ -470,6 +484,8 @@ public class ReportController { } } + + /** * 设备产能负荷看板 * @param diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java index 029858ab..65e1560d 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java @@ -218,4 +218,11 @@ public interface ReportMapper { * @return */ List> monthTimeStatisticsReport(Map paramMap); + + /** + * 质量问题统计表 + * @param paramMap + * @return + */ + List> qualityProblemsInfoReport(Map paramMap); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java index 63db73fb..cb251bed 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java @@ -230,4 +230,10 @@ public interface ReportService { */ List> monthTimeStatisticsReport(Map paramMap); + /** + * 质量问题统计表 + * @param paramMap + * @return + */ + List> qualityProblemsInfoReport(Map paramMap); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index 26eb3a0e..63b97f29 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -32,6 +32,8 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; +import static com.foreverwin.mesnac.anomaly.utils.DateReportUtils.getMonthRemainingDays; + /** * @Description TODO * @Author zhaojiawei @@ -684,11 +686,12 @@ public class ReportServiceImpl implements ReportService { } int month = Calendar.getInstance().get(Calendar.MONTH) + 1; List> result = reportMapper.monthLoadRateReport(paramMap); + Integer monthRemainingDays = getMonthRemainingDays(); for (Map map : result) { Float number = Float.valueOf(String.valueOf(map.get("workHours" + month))) + Float.valueOf(String.valueOf(map.get("tardinessWork"))); map.put("workHours" + month, String.format("%.2f",number)); - if ((map.containsKey("monthCapacity"))){ - map.put("monthRate" + month, String.format("%.2f",(number / Float.valueOf(String.valueOf(map.get("monthCapacity")))) * 100) + "%" ); + if ((map.containsKey("dayCapacity"))){ + map.put("monthRate" + month, String.format("%.2f",(number / (Float.valueOf(String.valueOf(map.get("dayCapacity")))) * monthRemainingDays) * 100) + "%" ); }else { map.put("monthRate" + month, "0.00%"); } @@ -709,6 +712,8 @@ public class ReportServiceImpl implements ReportService { Float workHours10 = 0.00f; Float workHours11= 0.00f; Float workHours12 = 0.00f; + Float currentCompletedWorkHours = 0.00f; + Float currentPlanWorkHours = 0.00f; for (Map map : result) { tardinessWork += Float.valueOf(String.valueOf(map.get("tardinessWork"))); if (!StringUtils.isBlank(map.get("monthCapacity"))){ @@ -726,6 +731,8 @@ public class ReportServiceImpl implements ReportService { workHours10 += Float.valueOf(String.valueOf(map.get("workHours10"))); workHours11 += Float.valueOf(String.valueOf(map.get("workHours11"))); workHours12 += Float.valueOf(String.valueOf(map.get("workHours12"))); + currentCompletedWorkHours += Float.valueOf(String.valueOf(map.get("currentCompletedWorkHours"))); + currentPlanWorkHours += Float.valueOf(String.valueOf(map.get("currentPlanWorkHours"))); } countMap.put("tardinessWork",String.format("%.2f",tardinessWork)); countMap.put("monthCapacity",String.format("%.2f",monthCapacity)); @@ -753,6 +760,10 @@ public class ReportServiceImpl implements ReportService { countMap.put("monthRate10",String.format("%.2f",workHours10 / monthCapacity * 100 ) + "%"); countMap.put("monthRate11",String.format("%.2f",workHours11 / monthCapacity * 100 ) + "%"); countMap.put("monthRate12",String.format("%.2f",workHours12 / monthCapacity * 100 ) + "%"); + countMap.put("currentCompletedWorkHours",String.format("%.2f",currentCompletedWorkHours)); + countMap.put("currentCompletedRate",String.format("%.2f",currentCompletedWorkHours / monthCapacity * 100 ) + "%"); + countMap.put("currentPlanWorkHours",String.format("%.2f",currentPlanWorkHours)); + result.add(countMap); return result; } @@ -1265,6 +1276,111 @@ public class ReportServiceImpl implements ReportService { return reportMapper.monthTimeStatisticsReport(paramMap); } + /** + * 质量问题统计表 + * @param paramMap + * @return + */ + @Override + public List> qualityProblemsInfoReport(Map paramMap) { + String site = CommonMethods.getSite(); + paramMap.put("site", site); + paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage()); + List> qualityInspectionReport = reportMapper.qualityProblemsInfoReport(paramMap); + //原因分类 + Map> dataFieldListMap = new HashMap<>(); + DataField dataField = new DataField(); + dataField.setSite(site); + dataField.setDataField("REASON_CATEGORY"); + List dataFieldList = dataFieldListMapper.findDataFieldList(dataField); + if (dataFieldList != null && dataFieldList.size() > 0) { + dataFieldListMap = dataFieldList.stream().collect(Collectors.groupingBy(DataFieldList::getDataValue)); + } + for (int i = 0; i < qualityInspectionReport.size(); i++) { + Map temporaryMap = qualityInspectionReport.get(i); + String dutyCauseType = (String) temporaryMap.get("DUTY_CAUSE_TYPE"); + if (StringUtils.isBlank(dutyCauseType)) { + qualityInspectionReport.get(i).put("DUTY_CAUSE_TYPE_DESCRIPTION", ""); + continue; + } + String[] dutyCauseTypeSplit = dutyCauseType.split(","); + StringBuilder dutyCauseTypeDescription = new StringBuilder(); + for (int j = 0; j < dutyCauseTypeSplit.length; j++) { + if (dataFieldListMap.get(dutyCauseTypeSplit[j]) != null) { + dutyCauseTypeDescription.append(dataFieldListMap.get(dutyCauseTypeSplit[j]).get(0).getDescription()).append(";"); + } + } + qualityInspectionReport.get(i).put("DUTY_CAUSE_TYPE_DESCRIPTION", dutyCauseTypeDescription); + } + + //返修工序内容 + Map map = new HashMap(); + map.put("site", site); + for (int i = 0; i < qualityInspectionReport.size(); i++) { + Map temporaryMap = qualityInspectionReport.get(i); + String routerBo = (String) temporaryMap.get("ROUTER_BO"); + if(StringUtil.notBlank(routerBo)){ + // map.put("abnormalBo", abnormalBo); + map.put("routerBo", routerBo); + List> result = routerStepcontentService.selectDisRouterInfo(map); + String ReapirContent = ""; + if (result != null && result.size() != 0) { + for (int j = 0; j < result.size(); j++) { + ReapirContent = ReapirContent + "【" + (String) result.get(j).get("STEP_ID") + "】" + + (String) result.get(j).get("ROUTER_STEP_CONTENT"); + } + } + qualityInspectionReport.get(i).put("ROUTER_STEP_CONTENT", ReapirContent); + } + + } + //责任分类 + dataField.setDataField("RESPONSIBILITY_TYPE"); + dataFieldList = dataFieldListMapper.findDataFieldList(dataField); + if (dataFieldList != null && dataFieldList.size() > 0) { + dataFieldListMap = dataFieldList.stream().collect(Collectors.groupingBy(DataFieldList::getDataValue)); + } + for (int i = 0; i < qualityInspectionReport.size(); i++) { + Map temporaryMap = qualityInspectionReport.get(i); + String dutyType = (String) temporaryMap.get("DUTY_TYPE"); + if (StringUtils.isBlank(dutyType)) { + qualityInspectionReport.get(i).put("DUTY_TYPE_DESCRIPTION", ""); + continue; + } + String[] dutyTypeSplit = dutyType.split(","); + StringBuilder dutyTypeDescription = new StringBuilder(); + for (int j = 0; j < dutyTypeSplit.length; j++) { + if (dataFieldListMap.get(dutyTypeSplit[j]) != null) { + dutyTypeDescription.append(dataFieldListMap.get(dutyTypeSplit[j]).get(0).getDescription()).append(";"); + } + } + qualityInspectionReport.get(i).put("DUTY_TYPE_DESCRIPTION", dutyTypeDescription); + } + //责任部门 + dataField.setDataField("RESPONSIBILITY_DEPARTMENT"); + dataFieldList = dataFieldListMapper.findDataFieldList(dataField); + if (dataFieldList != null && dataFieldList.size() > 0) { + dataFieldListMap = dataFieldList.stream().collect(Collectors.groupingBy(DataFieldList::getDataValue)); + } + for (int i = 0; i < qualityInspectionReport.size(); i++) { + Map temporaryMap = qualityInspectionReport.get(i); + String dutyDepart = (String) temporaryMap.get("DUTY_DEPART"); + if (StringUtils.isBlank(dutyDepart)) { + qualityInspectionReport.get(i).put("DUTY_DEPART_DESCRIPTION", ""); + continue; + } + String[] dutyDepartSplit = dutyDepart.split(","); + StringBuilder dutyDepartDescription = new StringBuilder(); + for (int j = 0; j < dutyDepartSplit.length; j++) { + if (dataFieldListMap.get(dutyDepartSplit[j]) != null) { + dutyDepartDescription.append(dataFieldListMap.get(dutyDepartSplit[j]).get(0).getDescription()).append(";"); + } + } + qualityInspectionReport.get(i).put("DUTY_DEPART_DESCRIPTION", dutyDepartDescription); + } + return qualityInspectionReport; + } + /** * 事业部质量看板数据接口 * @param user diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index 580f5cbd..c6a681f5 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -1586,9 +1586,14 @@ + \ No newline at end of file