工单生产进度表

master
赵嘉伟 3 years ago
parent b90f874aec
commit 390677196c

@ -116,7 +116,7 @@ public class ReportController {
* @param paramMap
* @return
*/
@GetMapping("/findAbnormalRecord")
@PostMapping("/findAbnormalRecord")
public R findAbnormalRecord(@RequestBody(required = false) Map paramMap){
try{
List<Map<String, Object>> result = reportService.findAbnormalRecord(paramMap);
@ -125,4 +125,19 @@ public class ReportController {
return R.failed(e.getMessage());
}
}
/**
*
* @param paramMap
* @return
*/
@PostMapping("/shopOrderSchedule")
public R shopOrderSchedule(@RequestBody(required = false) Map paramMap){
try{
List<Map<String, Object>> result = reportService.shopOrderSchedule(paramMap);
return R.ok(result);
}catch (Exception e){
return R.failed(e.getMessage());
}
}
}

@ -36,4 +36,11 @@ public interface ReportMapper {
List<Map<String,Object>> findQualityInspectionReport(Map paramMap);
List<Map<String,Object>> findAbnormalRecord(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String,Object>> shopOrderSchedule(Map paramMap);
}

@ -40,4 +40,11 @@ public interface ReportService {
* @return
*/
List<Map<String, Object>> findAbnormalRecord(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String, Object>> shopOrderSchedule(Map paramMap);
}

@ -237,7 +237,42 @@ public class ReportServiceImpl implements ReportService {
paramMap.put("site",site);
paramMap.put("locale",LocaleContextHolder.getLocale().getLanguage());
List<Map<String, Object>> findAbnormalRecord = reportMapper.findAbnormalRecord(paramMap);
return null;
Map<String, List<DataFieldList>> dataFieldListMap = new HashMap<>();
DataField dataField = new DataField();
dataField.setSite(site);
dataField.setDataField("REASON_CATEGORY");
//责任部门
dataField.setDataField("RESPONSIBILITY_DEPARTMENT");
List<DataFieldList> dataFieldList = dataFieldListMapper.findDataFieldList(dataField);
if (dataFieldList != null && dataFieldList.size() > 0) {
dataFieldListMap = dataFieldList.stream().collect(Collectors.groupingBy(DataFieldList::getDataValue));
}
for (int i = 0; i < findAbnormalRecord.size(); i++) {
Map<String, Object> temporaryMap = findAbnormalRecord.get(i);
String dutyDepart = (String) temporaryMap.get("DUTY_DEPART");
if (StringUtils.isBlank(dutyDepart)) {
findAbnormalRecord.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(";");
}
findAbnormalRecord.get(i).put("DUTY_DEPART_DESCRIPTION", dutyDepartDescription);
}
return findAbnormalRecord;
}
@Override
public List<Map<String, Object>> shopOrderSchedule(Map paramMap) {
String site = CommonMethods.getSite();
paramMap.put("site",site);
paramMap.put("locale",LocaleContextHolder.getLocale().getLanguage());
return reportMapper.shopOrderSchedule(paramMap);
}
}

@ -307,7 +307,7 @@
LEFT JOIN RESOURCE_TYPE rt ON rt.RESOURCE_TYPE = zsd.RESOURCE_TYPE AND rt.SITE = zab.SITE
LEFT JOIN WORK_CENTER wc ON wc.WORK_CENTER = SUBSTR(o.OPERATION,1,INSTR(o.OPERATION,'_')-1) AND wc.site = zab.SITE
<where>
zab."TYPE" ='Z'
zab.SITE = #{site} AND zab."TYPE" ='Z'
<if test="workCenter != null and workCenter != ''">
AND wc.WORK_CENTER LIKE '%${workCenter}%'
</if>
@ -350,7 +350,7 @@
</select>
<select id="findAbnormalRecord" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT wc.WORK_CENTER ,zab.PRODUCT_CATEGORY ,cf.VALUE WORK_ORDER,so.SHOP_ORDER SHOP_ORDER ,
SELECT wct.DESCRIPTION WORK_CENTER,zab.ITEM_NUMBER ITEM_NUMBER,zab.PRODUCT_CATEGORY ,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 '设备异常'
@ -373,19 +373,24 @@
WHEN zabd.ABNORMAL_METHOD = 'FW' THEN '返修(外协)'
WHEN zabd.ABNORMAL_METHOD = 'FB' THEN '返修(不返回原工艺)'
ELSE ''
END ABNORMAL_METHOD,zabd.RESOLVE_DATE_TIME RESOLVE_DATE_TIME,
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
zabd.ABNORMAL_REASON ABNORMAL_REASON,zabd.BEFORE_MEASURE BEFORE_MEASURE,
ug.DESCRIPTION RESOLVE_SEND_USER_GROUP,
TRUNC(TO_NUMBER(zabd.RESOLVE_DATE_TIME - zsr.CREATED_DATE_TIME)*24,2) 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
LEFT JOIN WORK_CENTER wc ON wc.WORK_CENTER = SUBSTR(zab.OPERATION,1,INSTR(zab.OPERATION,'_')-1)
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
LEFT JOIN NC_CODE nc ON zanc.NC_CODE = nc.NC_CODE AND nc.SITE = zab.SITE
LEFT JOIN NC_CODE_T nct ON nct.NC_CODE_BO = nc.HANDLE AND nct.LOCALE = 'zh'
LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zab.SHOP_ORDER AND so.SITE = zab.SITE
LEFT JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE
INNER JOIN ITEM i ON i.HANDLE = zab.ITEM_BO
LEFT JOIN ITEM i ON i.HANDLE = zab.ITEM_BO
LEFT JOIN ITEM_T it ON it.ITEM_BO = i.HANDLE AND it.LOCALE = 'zh'
LEFT JOIN OPERATION o ON o.OPERATION = zab.OPERATION AND o.SITE = zab.SITE
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = 'zh'
@ -394,13 +399,91 @@
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
GROUP BY wc.WORK_CENTER ,zab.PRODUCT_CATEGORY ,cf.VALUE ,so.SHOP_ORDER ,
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
<where>
zab.SITE = #{site} AND (wc.WORK_CENTER = #{workCenter} OR wct.DESCRIPTION = #{workCenter})
<if test="itemNumber != null and itemNumber != ''">
AND zab.ITEM_NUMBER = #{itemNumber}
</if>
<if test="workOrder != null and workOrder != ''">
AND cf.VALUE = #{workOrder}
</if>
<if test="operation != null and operation != ''">
AND (zab.OPERATION LIKE '%${operation}%'
OR ot.DESCRIPTION LIKE '%${operation}%')
</if>
<if test="resrce != null and resrce != ''">
AND (r.RESRCE LIKE '%${resrce}%'
OR r.DESCRIPTION LIKE '%${resrce}%')
</if>
<if test="abnormalType != null and abnormalType != ''">
AND zab.TYPE = #{abnormalType}
</if>
<if test="pbUser != null and pbUser != ''">
AND (zab.PB_USER = #{pbUser} OR znu.FULL_NAME = #{pbUser})
</if>
<if test="createdUser != null and createdUser != ''">
AND (zab.CREATED_USER = #{createdUser} OR znu2.FULL_NAME = #{createdUser})
</if>
</where>
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
zabd.RESOLVE_REMARK,zabd.ABNORMAL_REASON,zabd.BEFORE_MEASURE,
zsr.CREATED_DATE_TIME,zab.ITEM_NUMBER,
zabd.DUTY_DEPART,ug.DESCRIPTION
ORDER BY zab.CREATED_DATE_TIME DESC
</select>
<select id="shopOrderSchedule" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT wct.DESCRIPTION WORK_CENTER_DESCRIPTION,cf.VALUE ITEM_NUMBER,cf2.VALUE PRODUCT_CATEGORY,
zsd.SHOP_ORDER,it.DESCRIPTION ITEM_DESCRIPTION,zsd.PLANNED_START_DATE,
zsd.PLANNED_COMP_DATE ,zsd.ACTUAL_START_DATE ,ot.DESCRIPTION CURRENT_OPERATION_DESCRIPTION,
ot2.DESCRIPTION OPERATION_DESCRIPTION
FROM Z_SFC_DISPATCH zsd
LEFT JOIN WORK_CENTER wc ON wc.WORK_CENTER = zsd.WORK_CENTER
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zsd.SHOP_ORDER AND so.SITE = zsd.SITE
LEFT JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'ITEM_NUMBER'
LEFT JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so.HANDLE AND cf2."ATTRIBUTE" = 'PRODUCT_CATEGORY'
LEFT JOIN ITEM i On i.HANDLE = so.ITEM_BO
LEFT JOIN ITEM_T it ON it.ITEM_BO = so.ITEM_BO
LEFT JOIN RESRCE r ON r.RESRCE = zsd.RESRCE AND r.SITE = zsd.SITE
LEFT JOIN SFC s ON s.SFC = zsd.SFC AND s.SITE = zsd.SITE
LEFT JOIN SFC_ROUTING sr ON sr.SFC_BO = s.HANDLE
LEFT JOIN SFC_ROUTER st ON st.SFC_ROUTING_BO = sr.HANDLE
LEFT JOIN SFC_STEP ss ON ss.SFC_ROUTER_BO = st.HANDLE AND (ss.QTY_IN_QUEUE > 0 OR ss.QTY_IN_WORK > 0)
LEFT JOIN OPERATION o ON o.OPERATION = SUBSTR(SS.OPERATION_BO,INSTR(SS.OPERATION_BO,',',1,1)+1,INSTR(SS.OPERATION_BO,',',1,2) - INSTR(SS.OPERATION_BO,',') -1) AND o.SITE = zsd.SITE
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = 'zh'
LEFT JOIN OPERATION o2 ON o2.OPERATION = zsd.OPERATION AND o2.SITE = zsd.SITE
LEFT JOIN OPERATION_T ot2 ON ot2.OPERATION_BO = o2.HANDLE AND ot2.LOCALE = 'zh'
<where>
zsd.SITE = #{site}
<if test="workCenter != null and workCenter != ''">
AND (wc.WORK_CENTER = #{workCenter} OR wct.DESCRIPTION = #{workCenter})
</if>
<if test="itemNumber != null and itemNumber != ''">
AND cf.VALUE = #{itemNumber}
</if>
<if test="productCategory != null and productCategory != ''">
AND cf2.VALUE = #{productCategory}
</if>
<if test="operation != null and operation != ''">
AND (o2.OPERATION LIKE '%${operation}%'
OR ot2.DESCRIPTION LIKE '%${operation}%')
</if>
<if test="resrce != null and resrce != ''">
AND (r.RESRCE LIKE '%${resrce}%'
OR r.DESCRIPTION LIKE '%${resrce}%')
</if>
<if test="item != null and item != ''">
AND (i.ITEM LIKE '%${item}%' OR it.DESCRIPTION LIKE '%${item}%')
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save