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 a770c956..4d8e3d7e 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 @@ -136,6 +136,20 @@ public class ReportController { return R.failed(e.getMessage()); } } + /** + * 零件生产过程追溯报表 + * @param paramMap + * @return + */ + @GetMapping("/partsTraceScheduleReport") + public R partsTraceScheduleReport(@RequestParam(required = false) Map paramMap){ + try{ + List> result = reportService.partsTraceScheduleReport(paramMap); + return R.ok(result); + }catch (Exception e){ + return R.failed(e.getMessage()); + } + } @GetMapping("/findOperatorScheduleReport") public R findOperatorScheduleReport(@RequestParam(required = false) Map paramMap){ 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 fe5b2dc9..49efbfd4 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 @@ -57,4 +57,10 @@ public interface ReportMapper { * @return 返回值 */ List> findWorkOrderSchedule(Map paramMap); + /** + * 零件生产过程追溯报表 + * @param paramMap + * @return + */ + List> partsTraceScheduleReport(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 efd29558..247da19d 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 @@ -61,4 +61,11 @@ public interface ReportService { * @return 返回值 */ List> findWorkOrderSchedule(Map paramMap); + + /** + * 零件生产过程追溯报表 + * @param paramMap + * @return + */ + List> partsTraceScheduleReport(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 efca3a29..61b19f15 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 @@ -347,6 +347,20 @@ public class ReportServiceImpl implements ReportService { paramMap.put("locale",LocaleContextHolder.getLocale().getLanguage()); return reportMapper.findWorkOrderSchedule(paramMap); } + /** + * 零件生产过程追溯报表 + * @param paramMap + * @return + */ + @Override + public List> partsTraceScheduleReport(Map paramMap) { + String site = CommonMethods.getSite(); + paramMap.put("site",site); + paramMap.put("locale",LocaleContextHolder.getLocale().getLanguage()); + + return reportMapper.partsTraceScheduleReport(paramMap); + + } } diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index b9eebbfb..09a594a9 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -12,8 +12,8 @@ WITH ZSD AS ( SELECT * FROM - ( SELECT TEMP.* , ROW_NUMBER() OVER(PARTITION BY TEMP.FINISHED_SFC , TEMP.FINISHED_SHOP_ORDER ORDER BY STEP_ID_A) RN FROM + ( SELECT TEMP.* , ROW_NUMBER() OVER(PARTITION BY TEMP.FINISHED_SFC , TEMP.FINISHED_SHOP_ORDER ORDER BY + STEP_ID_A) RN FROM ( SELECT cf.VALUE FINISHED_WORK_ORDER, @@ -83,10 +84,12 @@ ) WHERE RN = 1 ) , zsdTemplate AS ( - SELECT COUNT(ZSD2.SHOP_ORDER) NUM , ZSD.FINISHED_SHOP_ORDER FINISHED_SHOP_ORDER_TEMP , ZSD.FINISHED_SFC FINISHED_SFC_TEMP FROM ZSD + SELECT COUNT(ZSD2.SHOP_ORDER) NUM , ZSD.FINISHED_SHOP_ORDER FINISHED_SHOP_ORDER_TEMP , ZSD.FINISHED_SFC + FINISHED_SFC_TEMP FROM ZSD INNER JOIN BOM_COMPONENT bc ON bc.BOM_BO = zsd.BOM_BO INNER JOIN SHOP_ORDER so ON so.ITEM_BO = BC.COMPONENT_GBO - INNER JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'WORK_ORDER' AND cf.VALUE = zsd.FINISHED_WORK_ORDER + INNER JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'WORK_ORDER' AND cf.VALUE = + zsd.FINISHED_WORK_ORDER INNER JOIN Z_SFC_DISPATCH zsd2 ON zsd2.SHOP_ORDER = so.SHOP_ORDER AND zsd2.SITE = #{site} WHERE zsd2.DISPATCH_STATUS != 'COMPLETE' AND zsd2.DISPATCH_STATUS != 'CANCEL' GROUP BY ZSD.FINISHED_SHOP_ORDER , ZSD.FINISHED_SFC @@ -175,7 +178,8 @@ FROM zsd LEFT JOIN zsdTemplate ON - zsdTemplate.FINISHED_SHOP_ORDER_TEMP = zsd.FINISHED_SHOP_ORDER AND zsdTemplate.FINISHED_SFC_TEMP = ZSD.FINISHED_SFC + zsdTemplate.FINISHED_SHOP_ORDER_TEMP = zsd.FINISHED_SHOP_ORDER AND zsdTemplate.FINISHED_SFC_TEMP = + ZSD.FINISHED_SFC INNER JOIN BOM_COMPONENT bc ON bc.BOM_BO = zsd.BOM_BO INNER JOIN ITEM i ON @@ -312,62 +316,65 @@ SELECT wct.DESCRIPTION WORK_CENTER, - COALESCE(cf2.VALUE,zab.ITEM_NUMBER) ITEM_NUMBER, - COALESCE(zab.WORK_ORDER,cf.VALUE) WORK_ORDER, - so.SHOP_ORDER SHOP_ORDER , - i.ITEM ITEM,it.DESCRIPTION ITEM_DESCRIPTION,zab.SFC SFC,zab.ABNORMAL_NO ABNORMAL_NO, - CASE WHEN zab."TYPE" = 'Z' THEN '质量异常' - WHEN zab."TYPE" = 'S' THEN '设备异常' - WHEN zab."TYPE" = 'Q' THEN '其他异常' END ABNORMAL_TYPE, - zab.OPERATION OPERATION ,ot.DESCRIPTION OPERATION_DESCRIPTION,r.RESRCE RESRCE,r.DESCRIPTION RESRCE_DESCRIPTION, - zab.CREATED_DATE_TIME CREATED_DATE_TIME ,znu.FULL_NAME PB_USER,znu2.FULL_NAME REPORT_USER, - LISTAGG(nct.DESCRIPTION , ';') WITHIN GROUP(ORDER BY zab.ABNORMAL_NO) NC_CODE_DESCRIPTION, - CASE WHEN zab.STATUS = 'N' THEN '新建' - WHEN zab.STATUS = 'X' THEN '响应中' - WHEN zab.STATUS = 'F' THEN '方案确认' - WHEN zab.STATUS = 'J' THEN '纠防确认' - WHEN zab.STATUS = 'Q' THEN '取消' - WHEN zab.STATUS = 'G' THEN '关闭' END ABNORMAL_STATUS, - CASE WHEN zabd.ABNORMAL_METHOD = 'X' THEN '线下换料' - WHEN zabd.ABNORMAL_METHOD = 'S' THEN '试装' - WHEN zabd.ABNORMAL_METHOD = 'R' THEN '让步放行' - WHEN zabd.ABNORMAL_METHOD = 'C' THEN '报废' - WHEN zabd.ABNORMAL_METHOD = 'P' THEN '配作' - WHEN zabd.ABNORMAL_METHOD = 'F' THEN '返修' - WHEN zabd.ABNORMAL_METHOD = 'FW' THEN '返修(外协)' - WHEN zabd.ABNORMAL_METHOD = 'FB' THEN '返修(不返回原工艺)' - ELSE '' - END ABNORMAL_METHOD, - zabd.RESOLVE_DATE_TIME RESOLVE_DATE_TIME, - znu3.FULL_NAME RESOLVE_USER,zabd.CLOSED_DATE_TIME CANCEL_DATE_TIME , - znu4.FULL_NAME CANCEL_USER,zabd.RESOLVE_REMARK RESOLVE_REMARK, - zabd.ABNORMAL_REASON ABNORMAL_REASON,zabd.BEFORE_MEASURE BEFORE_MEASURE, - ug.DESCRIPTION RESOLVE_SEND_USER_GROUP, - CASE WHEN zsr.CREATED_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME - zsr.CREATED_DATE_TIME)*24,'FM9999990.000') - WHEN zabd.RESOLVE_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME - zab.CREATED_DATE_TIME)*24,'FM9999990.000') - ELSE '' - END RESOLVE_DURATION, - zabd.DUTY_DEPART DUTY_DEPART + COALESCE(cf2.VALUE,zab.ITEM_NUMBER) ITEM_NUMBER, + COALESCE(zab.WORK_ORDER,cf.VALUE) WORK_ORDER, + so.SHOP_ORDER SHOP_ORDER , + i.ITEM ITEM,it.DESCRIPTION ITEM_DESCRIPTION,zab.SFC SFC,zab.ABNORMAL_NO ABNORMAL_NO, + CASE WHEN zab."TYPE" = 'Z' THEN '质量异常' + WHEN zab."TYPE" = 'S' THEN '设备异常' + WHEN zab."TYPE" = 'Q' THEN '其他异常' END ABNORMAL_TYPE, + zab.OPERATION OPERATION ,ot.DESCRIPTION OPERATION_DESCRIPTION,r.RESRCE RESRCE,r.DESCRIPTION RESRCE_DESCRIPTION, + zab.CREATED_DATE_TIME CREATED_DATE_TIME ,znu.FULL_NAME PB_USER,znu2.FULL_NAME REPORT_USER, + LISTAGG(nct.DESCRIPTION , ';') WITHIN GROUP(ORDER BY zab.ABNORMAL_NO) NC_CODE_DESCRIPTION, + CASE WHEN zab.STATUS = 'N' THEN '新建' + WHEN zab.STATUS = 'X' THEN '响应中' + WHEN zab.STATUS = 'F' THEN '方案确认' + WHEN zab.STATUS = 'J' THEN '纠防确认' + WHEN zab.STATUS = 'Q' THEN '取消' + WHEN zab.STATUS = 'G' THEN '关闭' END ABNORMAL_STATUS, + CASE WHEN zabd.ABNORMAL_METHOD = 'X' THEN '线下换料' + WHEN zabd.ABNORMAL_METHOD = 'S' THEN '试装' + WHEN zabd.ABNORMAL_METHOD = 'R' THEN '让步放行' + WHEN zabd.ABNORMAL_METHOD = 'C' THEN '报废' + WHEN zabd.ABNORMAL_METHOD = 'P' THEN '配作' + WHEN zabd.ABNORMAL_METHOD = 'F' THEN '返修' + WHEN zabd.ABNORMAL_METHOD = 'FW' THEN '返修(外协)' + WHEN zabd.ABNORMAL_METHOD = 'FB' THEN '返修(不返回原工艺)' + ELSE '' + END ABNORMAL_METHOD, + zabd.RESOLVE_DATE_TIME RESOLVE_DATE_TIME, + znu3.FULL_NAME RESOLVE_USER,zabd.CLOSED_DATE_TIME CANCEL_DATE_TIME , + znu4.FULL_NAME CANCEL_USER,zabd.RESOLVE_REMARK RESOLVE_REMARK, + zabd.ABNORMAL_REASON ABNORMAL_REASON,zabd.BEFORE_MEASURE BEFORE_MEASURE, + ug.DESCRIPTION RESOLVE_SEND_USER_GROUP, + CASE WHEN zsr.CREATED_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME - + zsr.CREATED_DATE_TIME)*24,'FM9999990.000') + WHEN zabd.RESOLVE_DATE_TIME IS NOT NULL THEN TO_CHAR(TO_NUMBER(zabd.RESOLVE_DATE_TIME - + zab.CREATED_DATE_TIME)*24,'FM9999990.000') + ELSE '' + END RESOLVE_DURATION, + zabd.DUTY_DEPART DUTY_DEPART FROM Z_ABNORMAL_BILL zab LEFT JOIN Z_ABNORMAL_NC_CODE zanc ON zanc.ABNORMAL_BILL_BO = zab.HANDLE LEFT JOIN Z_ABNORMAL_BILL_DISPOSE zabd ON zabd.ABNORMAL_BILL_BO = zab.HANDLE @@ -613,19 +628,19 @@ LEFT JOIN Z_NWA_USER znu2 ON znu2.USER_NAME = zab.CREATED_USER LEFT JOIN Z_NWA_USER znu3 ON znu3.USER_NAME = zabd.RESOLVE_USER LEFT JOIN Z_NWA_USER znu4 ON znu4.USER_NAME = zabd.CLOSED_USER - LEFT JOIN Z_SELF_REPORT zsr ON zsr.HANDLE = zab.OBJECT_BO - LEFT JOIN USER_GROUP ug ON ug.USER_GROUP = zabd.RESOLVE_SEND_USER_GROUP AND ug.SITE = zab.SITE + LEFT JOIN Z_SELF_REPORT zsr ON zsr.HANDLE = zab.OBJECT_BO + LEFT JOIN USER_GROUP ug ON ug.USER_GROUP = zabd.RESOLVE_SEND_USER_GROUP AND ug.SITE = zab.SITE zab.SITE = #{site} - AND zab.ABNORMAL_NO = #{abnormalNo} + AND zab.ABNORMAL_NO = #{abnormalNo} - AND zab.sfc = #{sfc} + AND zab.sfc = #{sfc} + + + AND (wc.WORK_CENTER = #{workCenter} OR wct.DESCRIPTION = #{workCenter}) - - AND (wc.WORK_CENTER = #{workCenter} OR wct.DESCRIPTION = #{workCenter}) - AND (CASE WHEN cf2.VALUE IS NOT NULL THEN cf2.VALUE ELSE zab.ITEM_NUMBER END) = #{itemNumber} @@ -638,7 +653,7 @@ AND (r.RESRCE LIKE '%${resrce}%' - OR r.DESCRIPTION LIKE '%${resrce}%') + OR r.DESCRIPTION LIKE '%${resrce}%') AND zab.TYPE = #{abnormalType} @@ -652,119 +667,126 @@ GROUP BY wct.DESCRIPTION ,zab.PRODUCT_CATEGORY ,cf.VALUE ,so.SHOP_ORDER , - i.ITEM ,it.DESCRIPTION,zab.SFC,zab."TYPE" ,zab.ABNORMAL_NO, - zab.OPERATION,ot.DESCRIPTION,r.RESRCE,r.DESCRIPTION, - zab.CREATED_DATE_TIME ,znu.FULL_NAME,znu2.FULL_NAME, - zab.STATUS,zabd.ABNORMAL_METHOD,zabd.RESOLVE_DATE_TIME , - znu3.FULL_NAME,zabd.CLOSED_DATE_TIME ,znu4.FULL_NAME, - zabd.RESOLVE_REMARK,zabd.ABNORMAL_REASON,zabd.BEFORE_MEASURE, - zsr.CREATED_DATE_TIME,zab.ITEM_NUMBER, - zabd.DUTY_DEPART,ug.DESCRIPTION,cf2.VALUE,zab.WORK_ORDER + i.ITEM ,it.DESCRIPTION,zab.SFC,zab."TYPE" ,zab.ABNORMAL_NO, + zab.OPERATION,ot.DESCRIPTION,r.RESRCE,r.DESCRIPTION, + zab.CREATED_DATE_TIME ,znu.FULL_NAME,znu2.FULL_NAME, + zab.STATUS,zabd.ABNORMAL_METHOD,zabd.RESOLVE_DATE_TIME , + znu3.FULL_NAME,zabd.CLOSED_DATE_TIME ,znu4.FULL_NAME, + zabd.RESOLVE_REMARK,zabd.ABNORMAL_REASON,zabd.BEFORE_MEASURE, + zsr.CREATED_DATE_TIME,zab.ITEM_NUMBER, + zabd.DUTY_DEPART,ug.DESCRIPTION,cf2.VALUE,zab.WORK_ORDER ORDER BY zab.CREATED_DATE_TIME DESC + \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/dto/shopOrderReleaseDto.java b/common/src/main/java/com/foreverwin/mesnac/common/dto/shopOrderReleaseDto.java new file mode 100644 index 00000000..5b6583b9 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/dto/shopOrderReleaseDto.java @@ -0,0 +1,25 @@ +package com.foreverwin.mesnac.common.dto; + + +import com.foreverwin.mesnac.common.model.ExcelColumn; + +import java.io.Serializable; + + +/** + * 更改工艺及BOM DTO + */ +public class shopOrderReleaseDto implements Serializable{ + + + @ExcelColumn("工单编号") + private String shopOrder; + + public String getShopOrder() { + return shopOrder; + } + + public void setShopOrder(String shopOrder) { + this.shopOrder = shopOrder; + } +}