diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java index 6976e322..a12bcecf 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java @@ -219,7 +219,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl> qualityInspectionReport = reportMapper.findQualityInspectionReport(paramMap); - return null; + + //原因分类 + 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++) { + dutyCauseTypeDescription.append(dataFieldListMap.get(dutyCauseTypeSplit[j]).get(0).getDescription()).append(";"); + } + qualityInspectionReport.get(i).put("DUTY_CAUSE_TYPE_DESCRIPTION", dutyCauseTypeDescription); + } + + + //责任分类 + 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++) { + 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++) { + dutyDepartDescription.append(dataFieldListMap.get(dutyDepartSplit[j]).get(0).getDescription()).append(";"); + } + qualityInspectionReport.get(i).put("DUTY_DEPART_DESCRIPTION", dutyDepartDescription); + } + + return qualityInspectionReport; } } + + + + + + + + + + + + diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index 9ef25062..1986eae2 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -225,9 +225,9 @@ - + SELECT zab.CREATED_DATE_TIME,zab.ABNORMAL_NO ABNORMAL_NO, + dflt.DATA_TAG PRODUCT_CATEGORY, CASE WHEN zab.DISCOVER = 'Z' THEN '自制' WHEN zab.DISCOVER = 'W' THEN '外协' WHEN zab.DISCOVER = 'D' THEN '到货' @@ -239,7 +239,6 @@ CASE WHEN zab."TYPE" = 'Z' THEN '质量异常' WHEN zab."TYPE" = 'Q' THEN '其他异常' WHEN zab."TYPE" = 'S' THEN '设备异常' END "TYPE", - zab.REPORT_SEND_USER_GROUP INSPECTOR , zab.PB_GRADE PB_GRADE , zabd.PRINCIPAL_USER PRINCIPAL_USER, @@ -257,7 +256,9 @@ CASE WHEN (zabd.ABNORMAL_METHOD ='F' AND zab.SHOP_ORDER IS NOT NULL) THEN TO_CHAR(so.QTY_TO_BUILD,'9999') WHEN zabd.ABNORMAL_METHOD = 'F' THEN TO_CHAR(zab.PB_QTY,'9999') ELSE '' END NUMBERS, zsd.EMPLOYEE_DESCRIPTION DISPATCH_USER ,ot.DESCRIPTION OPERATION , - r2.RESRCE RESRCE,r2.DESCRIPTION RESRCE_DESCRIPTION,zsd.RESOURCE_TYPE RESOURCE_TYPE,rt.DESCRIPTION RESOURCE_TYPE_DESCRIPTION + r2.RESRCE RESRCE,r2.DESCRIPTION RESRCE_DESCRIPTION,zsd.RESOURCE_TYPE RESOURCE_TYPE, + rt.DESCRIPTION RESOURCE_TYPE_DESCRIPTION,zabd.DUTY_CAUSE_TYPE DUTY_CAUSE_TYPE,zabd.DUTY_TYPE DUTY_TYPE, + zabd.DUTY_DEPART DUTY_DEPART FROM Z_ABNORMAL_BILL zab INNER JOIN Z_ABNORMAL_BILL_DISPOSE zabd ON zab.HANDLE = zabd.ABNORMAL_BILL_BO LEFT JOIN Z_ABNORMAL_NC_CODE zanc ON zab.HANDLE = zanc.ABNORMAL_BILL_BO @@ -265,6 +266,9 @@ LEFT JOIN NC_CODE_T nct ON nct.NC_CODE_BO = nc.HANDLE AND nct.LOCALE = #{locale} INNER JOIN ITEM i ON i.HANDLE = zab.ITEM_BO LEFT JOIN ITEM_T it ON it.ITEM_BO = i.HANDLE AND it.LOCALE = #{locale} + INNER JOIN DATA_FIELD df ON df.DATA_FIELD = 'PRODUCT_CATEGORY' + LEFT JOIN DATA_FIELD_LIST dfl ON dfl.DATA_FIELD_BO = df.HANDLE AND dfl.DATA_VALUE = zab.PRODUCT_CATEGORY + LEFT JOIN DATA_FIELD_LIST_T dflt ON dflt.DATA_FIELD_LIST_BO = dfl.HANDLE AND dflt.LOCALE = #{locale} LEFT JOIN CUSTOM_FIELDS mapNo ON mapNo."ATTRIBUTE" = 'DWG_NO' AND mapNo.HANDLE = i.HANDLE LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zab.SHOP_ORDER AND so.SITE = zab.SITE LEFT JOIN ROUTER r ON r.HANDLE = zabd.ROUTER_BO @@ -278,7 +282,37 @@ LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = #{locale} LEFT JOIN RESRCE r2 ON r2.RESRCE = zsd.RESRCE AND r2.SITE = zab.SITE LEFT JOIN RESOURCE_TYPE rt ON rt.RESOURCE_TYPE = zsd.RESOURCE_TYPE AND rt.SITE = zab.SITE - WHERE zab."TYPE" ='Z' + LEFT JOIN WORK_CENTER wc ON wc.WORK_CENTER = SUBSTR(o.OPERATION,1,INSTR(o.OPERATION,'_')-1) AND wc.site = zab.SITE + + zab."TYPE" ='Z' + + AND wc.WORK_CENTER LIKE '%${workCenter}%' + + + AND itemNumber.VALUE = #{itemNumber} + + + AND (dflt.DATA_TAG = #{productCategory} OR + zab.PRODUCT_CATEGORY = #{productCategory} + ) + + + AND (o.OPERATION LIKE '%${operation}%' OR + ot.DESCRIPTION LIKE '%${operation}%' + ) + + + AND (r2.RESRCE LIKE '%${resrce}%' OR + r2.DESCRIPTION LIKE '%${resrce}%' + ) + + + AND zab.CREATED_DATE_TIME >= TO_DATE(#{startDateTime},'YYYY-MM-DD') + + + AND zab.CREATED_DATE_TIME <= TO_DATE(#{endDateTime},'YYYY-MM-DD') + + GROUP BY zab.CREATED_DATE_TIME ,zab.ABNORMAL_NO , i.ITEM ,it.DESCRIPTION ,itemNumber.VALUE , mapNo.VALUE ,zab.PB_DESCRIPTION ,zsd.EMPLOYEE_DESCRIPTION , @@ -288,6 +322,7 @@ zabd.CLOSED_DATE_TIME ,zab.NC_QTY ,zab.PB_QTY ,zab.SHOP_ORDER,so.QTY_TO_BUILD, zsd.EMPLOYEE_DESCRIPTION ,ot.DESCRIPTION , r2.RESRCE,r2.DESCRIPTION,zsd.RESOURCE_TYPE, - rt.DESCRIPTION,zab.PRODUCT_CATEGORY + rt.DESCRIPTION, dflt.DATA_TAG,zabd.DUTY_CAUSE_TYPE,zabd.DUTY_TYPE ,zabd.DUTY_DEPART + ORDER BY zab.CREATED_DATE_TIME DESC \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/DataFieldListController.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/DataFieldListController.java index ab8a9bf4..daac1c3b 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/DataFieldListController.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/DataFieldListController.java @@ -2,6 +2,7 @@ package com.foreverwin.mesnac.meapi.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.meapi.model.DataField; import com.foreverwin.mesnac.meapi.model.DataFieldList; import com.foreverwin.mesnac.meapi.service.DataFieldListService; import com.foreverwin.modular.core.util.FrontPage; @@ -119,5 +120,8 @@ public class DataFieldListController { return R.ok(dataFieldListService.removeByIds(ids)); } - + @GetMapping("findDataFieldList") + public R findDataFieldList(DataField dataField){ + return R.ok(dataFieldListService.findDataFieldList(dataField)); + } } \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/DataFieldListMapper.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/DataFieldListMapper.java index 86dbb429..66735990 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/DataFieldListMapper.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/DataFieldListMapper.java @@ -28,4 +28,6 @@ public interface DataFieldListMapper extends BaseMapper { String findDataFieldListByDataField(@Param("dataField") DataField dataField,@Param("locale")String locale); + List findDataFieldList(@Param("dataField") DataField dataField); + } \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldListService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldListService.java index b0c282f3..d493ef4b 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldListService.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldListService.java @@ -33,4 +33,6 @@ public interface DataFieldListService extends IService { * @return */ List findDataFieldListById(DataField dataField); + + List findDataFieldList(DataField dataField); } \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldService.java index dc5de264..c4cb37b0 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldService.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/DataFieldService.java @@ -27,4 +27,5 @@ public interface DataFieldService extends IService { List selectList(DataField dataField); + } \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/DataFieldListServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/DataFieldListServiceImpl.java index dbe2bfe4..6f1bef97 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/DataFieldListServiceImpl.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/DataFieldListServiceImpl.java @@ -49,4 +49,9 @@ public class DataFieldListServiceImpl extends ServiceImpl findDataFieldList(DataField dataField) { + return dataFieldListMapper.findDataFieldList(dataField); + } } \ No newline at end of file diff --git a/meapi/src/main/resources/mapper/DataFieldListMapper.xml b/meapi/src/main/resources/mapper/DataFieldListMapper.xml index 10740ecf..e2235963 100644 --- a/meapi/src/main/resources/mapper/DataFieldListMapper.xml +++ b/meapi/src/main/resources/mapper/DataFieldListMapper.xml @@ -359,7 +359,6 @@ AND DF.DATA_FIELD = #{dataField.dataField} - @@ -389,4 +388,24 @@ + +