看板接口修改v2

master
yinq 2 years ago
parent eff5d2083b
commit a78528efe7

@ -4,6 +4,7 @@ import com.foreverwin.mesnac.anomaly.dto.IntegrationLogDto;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -159,7 +160,7 @@ public interface ReportMapper {
List<Map<String, String>> capacityLoad(String workCenter); List<Map<String, String>> capacityLoad(String workCenter);
Map<String, String> sixShopOrderQTY(String workCenter); LinkedHashMap<String, String> sixShopOrderQTY(String workCenter);
List<Map<String, String>> nearFifteenDayRate(String workCenter); List<Map<String, String>> nearFifteenDayRate(String workCenter);

@ -1,5 +1,6 @@
package com.foreverwin.mesnac.anomaly.service.impl; package com.foreverwin.mesnac.anomaly.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.foreverwin.mesnac.anomaly.dto.IntegrationLogDto; import com.foreverwin.mesnac.anomaly.dto.IntegrationLogDto;
import com.foreverwin.mesnac.anomaly.mapper.ReportMapper; import com.foreverwin.mesnac.anomaly.mapper.ReportMapper;
@ -547,7 +548,19 @@ public class ReportServiceImpl implements ReportService {
if (!StringUtils.isBlank(String.valueOf(paramMap.get("month")))){ if (!StringUtils.isBlank(String.valueOf(paramMap.get("month")))){
paramMap.put("month",Integer.valueOf(String.valueOf(paramMap.get("month")))); paramMap.put("month",Integer.valueOf(String.valueOf(paramMap.get("month"))));
} }
return reportMapper.monthLoadRateReport(paramMap); int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
List<Map<String, Object>> result = reportMapper.monthLoadRateReport(paramMap);
for (Map<String, Object> 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) + "%" );
}else {
map.put("monthRate" + month, "0.00%");
}
}
return result;
} }
/** /**
@ -769,21 +782,21 @@ public class ReportServiceImpl implements ReportService {
capacityLoadList = reportMapper.capacityLoad(workCenter); capacityLoadList = reportMapper.capacityLoad(workCenter);
Float planCapacity = 0f; Float planCapacity = 0f;
Float standardCapacity = 0f; Float standardCapacity = 0f;
ArrayList<HashMap<String, Object> > eightList = new ArrayList<>(); ArrayList<HashMap<String, Object>> eightList = new ArrayList<>();
ArrayList<Float> planHoursList = new ArrayList<>(); ArrayList<Float> planHoursList = new ArrayList<>();
ArrayList<Float> planUndoneHoursList = new ArrayList<>(); ArrayList<Float> planUndoneHoursList = new ArrayList<>();
for (Map<String, String> map : capacityLoadList) { for (Map<String, String> map : capacityLoadList) {
HashMap<String, Object> resourceMap = new HashMap<>(); HashMap<String, Object> resourceMap = new HashMap<>();
//计划工时 //计划工时
ArrayList<String> planList = new ArrayList<>(); ArrayList<Float> planList = new ArrayList<>();
planList.add(String.valueOf(map.get("planCapacity1"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity1"))));
planList.add(String.valueOf(map.get("planCapacity2"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity2"))));
planList.add(String.valueOf(map.get("planCapacity3"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity3"))));
planList.add(String.valueOf(map.get("planCapacity4"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity4"))));
planList.add(String.valueOf(map.get("planCapacity5"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity5"))));
planList.add(String.valueOf(map.get("planCapacity6"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity6"))));
planList.add(String.valueOf(map.get("planCapacity7"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity7"))));
planList.add(String.valueOf(map.get("planCapacity8"))); planList.add(Float.valueOf(String.valueOf(map.get("planCapacity8"))));
resourceMap.put("planCapacityList",planList); resourceMap.put("planCapacityList",planList);
//标准产能 //标准产能
resourceMap.put("standardWeekCapacity",map.get("standardWeekCapacity")); resourceMap.put("standardWeekCapacity",map.get("standardWeekCapacity"));
@ -792,20 +805,20 @@ public class ReportServiceImpl implements ReportService {
//设备描述 //设备描述
resourceMap.put("resourceDescription",map.get("resourceDescription")); resourceMap.put("resourceDescription",map.get("resourceDescription"));
//总标准产能、总计划产能 //总标准产能、总计划产能
for (String et : planList) { for (Float et : planList) {
planCapacity += Float.parseFloat(et); planCapacity += Float.parseFloat(String.valueOf(et));
} }
standardCapacity += Float.valueOf(String.valueOf(map.get("standardWeekCapacity"))); standardCapacity += Float.valueOf(String.valueOf(map.get("standardWeekCapacity")));
//比率 计划工时 / 标准产能 * 100 //比率 计划工时 / 标准产能 * 100
ArrayList<String> rateList = new ArrayList<>(); ArrayList<String> rateList = new ArrayList<>();
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity1"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity1"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity2"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity2"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity3"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity3"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity4"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity4"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity5"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity5"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity6"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity6"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity7"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity7"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity8"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity8"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100));
resourceMap.put("planCapacityRateList",rateList); resourceMap.put("planCapacityRateList",rateList);
planHoursList.add(Float.valueOf(String.valueOf(map.get("planHours")))); planHoursList.add(Float.valueOf(String.valueOf(map.get("planHours"))));
@ -833,7 +846,7 @@ public class ReportServiceImpl implements ReportService {
@Override @Override
public Map<String, Object> manufacturingPlanning(String workCenter) { public Map<String, Object> manufacturingPlanning(String workCenter) {
HashMap<String, Object> result = new HashMap<>(); HashMap<String, Object> result = new HashMap<>();
Map<String, String> sixMap = reportMapper.sixShopOrderQTY(workCenter); LinkedHashMap<String, String> sixMap = reportMapper.sixShopOrderQTY(workCenter);
ArrayList<Integer> sixList = new ArrayList<>(); ArrayList<Integer> sixList = new ArrayList<>();
for (String key : sixMap.keySet()) { for (String key : sixMap.keySet()) {
sixList.add(Integer.valueOf(String.valueOf(sixMap.get(key)))); sixList.add(Integer.valueOf(String.valueOf(sixMap.get(key))));
@ -1011,9 +1024,9 @@ public class ReportServiceImpl implements ReportService {
HashMap<String, Object> result = new HashMap<>(); HashMap<String, Object> result = new HashMap<>();
result.put("userGroup", userGroup); result.put("userGroup", userGroup);
List<Map<String, String>> abnormalQualityList = reportMapper.projectScheduleShow(userGroup); List<Map<String, String>> abnormalQualityList = reportMapper.projectScheduleShow(userGroup);
if (abnormalQualityList.size() > 20){ /* if (abnormalQualityList.size() > 20){
abnormalQualityList = abnormalQualityList.subList(0, 20); abnormalQualityList = abnormalQualityList.subList(0, 20);
} }*/
result.put("originalData",abnormalQualityList); result.put("originalData",abnormalQualityList);
//项目进度圆圈circle //项目进度圆圈circle
ArrayList<HashMap<String, String>> projectCircleList = new ArrayList<>(); ArrayList<HashMap<String, String>> projectCircleList = new ArrayList<>();
@ -1051,9 +1064,9 @@ public class ReportServiceImpl implements ReportService {
result.put("firstThreeList",firstThreeList); result.put("firstThreeList",firstThreeList);
// rate2 计划进度(浅绿色)/ rate1 计划完成(深蓝色) 为百分比 rate3深黄色() 实际工时进度。start开始时间 0 -- 70 // rate2 计划进度(浅绿色)/ rate1 计划完成(深蓝色) 为百分比 rate3深黄色() 实际工时进度。start开始时间 0 -- 70
ArrayList<HashMap<String, String>> projectGanttChartList = new ArrayList<>(); ArrayList<HashMap<String, Object>> projectGanttChartList = new ArrayList<>();
for (Map<String, String> abnormalQualityMap : abnormalQualityList) { for (Map<String, String> abnormalQualityMap : abnormalQualityList) {
HashMap<String, String> projectGanttChartHashMap = new HashMap<>(); /*HashMap<String, String> projectGanttChartHashMap = new HashMap<>();
String startDate = dateConvert(String.valueOf(abnormalQualityMap.get("startDate"))); String startDate = dateConvert(String.valueOf(abnormalQualityMap.get("startDate")));
projectGanttChartHashMap.put("start",startDate); projectGanttChartHashMap.put("start",startDate);
// rate1 计划完成(深蓝色) // rate1 计划完成(深蓝色)
@ -1081,9 +1094,19 @@ public class ReportServiceImpl implements ReportService {
} }
//String now = dateConvert(DateUtil.formatDate(new Date())); //String now = dateConvert(DateUtil.formatDate(new Date()));
projectGanttChartHashMap.put("rate2",String.valueOf(Float.valueOf(abnormalQualityMap.get("planRate")) * 0.7 - Float.valueOf(startDate))); projectGanttChartHashMap.put("rate2",String.valueOf(Float.valueOf(abnormalQualityMap.get("planRate")) * 0.7 - Float.valueOf(startDate)));
projectGanttChartList.add(projectGanttChartHashMap); projectGanttChartList.add(projectGanttChartHashMap);*/
HashMap<String, Object> projectGanttChartHashMap = new HashMap<>();
Date startDate = DateReportUtils.stringToDate(String.valueOf(abnormalQualityMap.get("startDate")), "yyyy-MM-dd HH:mm:ss");
Date endPlanDate = DateReportUtils.stringToDate(String.valueOf(abnormalQualityMap.get("endPlanDate")), "yyyy-MM-dd HH:mm:ss");
projectGanttChartHashMap.put("start",startDate.getTime());
projectGanttChartHashMap.put("end",endPlanDate.getTime());
projectGanttChartHashMap.put("rate", Float.valueOf(String.format("%.2f", Float.valueOf(String.valueOf(abnormalQualityMap.get("rate"))))));
projectGanttChartHashMap.put("rate1",Float.valueOf(String.format("%.2f", Float.valueOf(String.valueOf(abnormalQualityMap.get("planRate"))))));
projectGanttChartHashMap.put("rate2",Float.valueOf(String.format("%.2f", Float.valueOf(String.valueOf(abnormalQualityMap.get("rate"))))));
projectGanttChartList.add(projectGanttChartHashMap);
} }
result.put("projectGanttChartList",projectGanttChartList); result.put("projectGanttChartList",projectGanttChartList);
//System.out.println(JSON.toJSONString(projectGanttChartList));
return result; return result;
} }

@ -1216,6 +1216,12 @@
INNER JOIN OPERATION O ON O.SITE = WIP.SITE AND O.OPERATION = zsd2.OPERATION AND O.CURRENT_REVISION = 'true' INNER JOIN OPERATION O ON O.SITE = WIP.SITE AND O.OPERATION = zsd2.OPERATION AND O.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh' LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh'
<where> <where>
<if test="finished = 'true'">
WIP.rate = 100.00
</if>
<if test="finished = 'false'">
WIP.rate != 100.00
</if>
<if test="workOrder != null and workOrder != ''"> <if test="workOrder != null and workOrder != ''">
AND WIP.workOrder like '%${workOrder}%' AND WIP.workOrder like '%${workOrder}%'
</if> </if>
@ -1389,8 +1395,8 @@
GROUP BY OWIP.item, OWIP.workOrder GROUP BY OWIP.item, OWIP.workOrder
) WIP ) WIP
<where> <where>
WIP."rate" > 0.00 WIP."rate" <![CDATA[ < ]]> 100.00 AND WIP."rate" > 0.00
AND WIP."startDate" >= (SYSDATE - 5 * 7) --AND WIP."startDate" >= (SYSDATE - 5 * 7)
<if test="user != null and user != ''"> <if test="user != null and user != ''">
AND WIP."workOrder" like '%${user}%' AND WIP."workOrder" like '%${user}%'
</if> </if>
@ -1528,7 +1534,18 @@
</select> </select>
<select id="weekLoadRateReport" resultType="java.util.HashMap" parameterType="java.util.HashMap"> <select id="weekLoadRateReport" resultType="java.util.HashMap" parameterType="java.util.HashMap">
--资源负荷率报表(周维度) --资源负荷率报表(周维度)
SELECT CF.VALUE "weekCapacity",WIP.* FROM (WITH WEEK AS ( SELECT CF.VALUE "weekCapacity",WIP.*,
WIP.RESOURCE_TYPE_DESCRIPTION "DESCRIPTION",
WIP.WORK_CENTER_DESCRIPTION "workCenterDescription",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours1" / CF.VALUE) * 100, '99990.99') || '%' "weekRate1",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours2" / CF.VALUE) * 100, '99990.99') || '%' "weekRate2",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours3" / CF.VALUE) * 100, '99990.99') || '%' "weekRate3",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours4" / CF.VALUE) * 100, '99990.99') || '%' "weekRate4",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours5" / CF.VALUE) * 100, '99990.99') || '%' "weekRate5",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours6" / CF.VALUE) * 100, '99990.99') || '%' "weekRate6",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours7" / CF.VALUE) * 100, '99990.99') || '%' "weekRate7",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."unWorkHours8" / CF.VALUE) * 100, '99990.99') || '%' "weekRate8"
FROM (WITH WEEK AS (
SELECT TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') WEEK0, SELECT TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') WEEK0,
TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 1 WEEK1, TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 1 WEEK1,
TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 2 WEEK2, TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 2 WEEK2,
@ -1541,6 +1558,7 @@
FROM DUAL) FROM DUAL)
SELECT O.OPERATION "operation", SELECT O.OPERATION "operation",
OT.DESCRIPTION "operationDescription", OT.DESCRIPTION "operationDescription",
RT.DESCRIPTION,
SUM(CASE SUM(CASE
WHEN SYSDATE > ZSD.PLANNED_COMP_DATE THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "tardinessWork", WHEN SYSDATE > ZSD.PLANNED_COMP_DATE THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "tardinessWork",
SUM(CASE SUM(CASE
@ -1566,17 +1584,26 @@
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "unWorkHours7", THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "unWorkHours7",
SUM(CASE SUM(CASE
WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(WEEK.WEEK7) AND ZSD.PLANNED_COMP_DATE &lt;= TO_DATE(WEEK.WEEK8) WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(WEEK.WEEK7) AND ZSD.PLANNED_COMP_DATE &lt;= TO_DATE(WEEK.WEEK8)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "unWorkHours8" THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "unWorkHours8",
WCT.DESCRIPTION WORK_CENTER_DESCRIPTION,
RT.DESCRIPTION RESOURCE_TYPE_DESCRIPTION
FROM Z_SFC_DISPATCH ZSD FROM Z_SFC_DISPATCH ZSD
LEFT JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION AND O.SITE = ZSD.SITE LEFT JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION AND O.SITE = ZSD.SITE
LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO
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
LEFT JOIN RESOURCE_TYPE RT ON ZSD.RESOURCE_TYPE = RT.RESOURCE_TYPE
CROSS JOIN WEEK CROSS JOIN WEEK
WHERE (ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE' AND ZSD.DISPATCH_STATUS != 'COMPLETE') WHERE (ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE' AND ZSD.DISPATCH_STATUS != 'COMPLETE')
AND ZSD.PLANNED_COMP_DATE IS NOT NULL AND ZSD.PLANNED_COMP_DATE IS NOT NULL
-- AND ZSD.CREATED_DATE_TIME > TO_DATE(TRUNC(TO_DATE(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd'),'IW') - 8 * 7) -- AND ZSD.CREATED_DATE_TIME > TO_DATE(TRUNC(TO_DATE(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd'),'IW') - 8 * 7)
GROUP BY O.OPERATION,OT.DESCRIPTION <if test="workCenter != null and workCenter != ''">
AND ZSD.WORK_CENTER = #{workCenter}
</if>
GROUP BY O.OPERATION,OT.DESCRIPTION,WCT.DESCRIPTION,RT.DESCRIPTION
ORDER BY "tardinessWork" DESC ) WIP ORDER BY "tardinessWork" DESC ) WIP
LEFT JOIN CUSTOM_FIELDS CF ON CF.ATTRIBUTE ='WEEK_CAPACITY' AND CF.HANDLE = 'OperationBO:1000,'|| WIP."operation" || ',1.0' LEFT JOIN CUSTOM_FIELDS CF ON CF.ATTRIBUTE ='WEEK_CAPACITY' AND CF.HANDLE = 'OperationBO:1000,'|| WIP."operation" || ',1.0'
<where> <where>
1=1 1=1
<if test="operation != null and operation != ''"> <if test="operation != null and operation != ''">
@ -1591,6 +1618,8 @@
--资源负荷率报表(月维度) --资源负荷率报表(月维度)
SELECT WIP.*, SELECT WIP.*,
CF.VALUE "monthCapacity", CF.VALUE "monthCapacity",
WIP.RESOURCE_TYPE_DESCRIPTION "DESCRIPTION",
WIP.WORK_CENTER_DESCRIPTION "workCenterDescription",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."workHours1" / CF.VALUE) * 100, '99990.99') || '%' "monthRate1", TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."workHours1" / CF.VALUE) * 100, '99990.99') || '%' "monthRate1",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."workHours2" / CF.VALUE) * 100, '99990.99') || '%' "monthRate2", TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."workHours2" / CF.VALUE) * 100, '99990.99') || '%' "monthRate2",
TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."workHours3" / CF.VALUE) * 100, '99990.99') || '%' "monthRate3", TO_CHAR(DECODE(CF.VALUE,NULL,0, WIP."workHours3" / CF.VALUE) * 100, '99990.99') || '%' "monthRate3",
@ -1622,6 +1651,9 @@
SELECT O.OPERATION "operation", SELECT O.OPERATION "operation",
OT.DESCRIPTION "operationDescription", OT.DESCRIPTION "operationDescription",
SUM(CASE SUM(CASE
WHEN SYSDATE > ZSD.PLANNED_COMP_DATE AND ZSD.DISPATCH_STATUS != 'COMPLETE'
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "tardinessWork",
SUM(CASE
WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(MONTH.month0) AND ZSD.PLANNED_COMP_DATE &lt;= TO_DATE(MONTH.month1) WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(MONTH.month0) AND ZSD.PLANNED_COMP_DATE &lt;= TO_DATE(MONTH.month1)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "workHours1", THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "workHours1",
SUM(CASE SUM(CASE
@ -1656,16 +1688,22 @@
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "workHours11", THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "workHours11",
SUM(CASE SUM(CASE
WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(MONTH.month11) AND ZSD.PLANNED_COMP_DATE &lt;= TO_DATE(MONTH.month12) WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(MONTH.month11) AND ZSD.PLANNED_COMP_DATE &lt;= TO_DATE(MONTH.month12)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "workHours12" THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "workHours12",
WCT.DESCRIPTION WORK_CENTER_DESCRIPTION,
RT.DESCRIPTION RESOURCE_TYPE_DESCRIPTION
FROM Z_SFC_DISPATCH ZSD FROM Z_SFC_DISPATCH ZSD
LEFT JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION AND O.SITE = ZSD.SITE LEFT JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION AND O.SITE = ZSD.SITE
LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO
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
LEFT JOIN RESOURCE_TYPE RT ON ZSD.RESOURCE_TYPE = RT.RESOURCE_TYPE
CROSS JOIN MONTH CROSS JOIN MONTH
WHERE (ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE') WHERE (ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE')
AND ZSD.PLANNED_COMP_DATE IS NOT NULL AND ZSD.PLANNED_COMP_DATE IS NOT NULL
<if test="workCenter != null and workCenter != ''">
GROUP BY O.OPERATION,OT.DESCRIPTION AND ZSD.WORK_CENTER = #{workCenter}
</if>
GROUP BY O.OPERATION,OT.DESCRIPTION,WCT.DESCRIPTION,RT.DESCRIPTION
ORDER BY O.OPERATION DESC ) WIP ORDER BY O.OPERATION DESC ) WIP
LEFT JOIN CUSTOM_FIELDS CF ON CF.ATTRIBUTE ='MONTH_CAPACITY' AND CF.HANDLE = 'OperationBO:1000,'|| WIP."operation" || ',1.0' LEFT JOIN CUSTOM_FIELDS CF ON CF.ATTRIBUTE ='MONTH_CAPACITY' AND CF.HANDLE = 'OperationBO:1000,'|| WIP."operation" || ',1.0'
<where> <where>
@ -1680,7 +1718,7 @@
</select> </select>
<select id="weekDeliveryRateReport" resultType="java.util.HashMap" parameterType="java.util.HashMap"> <select id="weekDeliveryRateReport" resultType="java.util.HashMap" parameterType="java.util.HashMap">
SELECT WIP.WORK_CENTER "workCenter", SELECT WIP.WORK_CENTER "workCenter",
WIP.RESRCE "resrceCode", WIP.OPERATION "operationCode",
WIP.OPERATION_DESCRIPTION "operationDescription", WIP.OPERATION_DESCRIPTION "operationDescription",
WIP.RESRCE_DESCRIPTION "resrceDescription", WIP.RESRCE_DESCRIPTION "resrceDescription",
WIP.SUM_QTY "sumQTY", WIP.SUM_QTY "sumQTY",
@ -1691,7 +1729,7 @@
TO_CHAR(DECODE(WIP.SUM_HOURS,0,0,WIP.SUM_DONE_HOURS / WIP.SUM_HOURS) * 100, '99990.99') || '%' "HOURSrate" TO_CHAR(DECODE(WIP.SUM_HOURS,0,0,WIP.SUM_DONE_HOURS / WIP.SUM_HOURS) * 100, '99990.99') || '%' "HOURSrate"
FROM FROM
(SELECT wct.DESCRIPTION WORK_CENTER, (SELECT wct.DESCRIPTION WORK_CENTER,
r.RESRCE, o.OPERATION OPERATION,
OT.DESCRIPTION OPERATION_DESCRIPTION, OT.DESCRIPTION OPERATION_DESCRIPTION,
r.DESCRIPTION RESRCE_DESCRIPTION, r.DESCRIPTION RESRCE_DESCRIPTION,
SUM(zsd.DISPATCH_QTY) SUM_QTY, SUM(zsd.DISPATCH_QTY) SUM_QTY,
@ -1715,12 +1753,12 @@
AND wc.WORK_CENTER = #{workCenter} AND wc.WORK_CENTER = #{workCenter}
</if> </if>
<if test="startDate != null and startDate != ''"> <if test="startDate != null and startDate != ''">
AND zsd.PLANNED_COMP_DATE >= TO_DATE(#{startDate},'YYYY-mm-dd') AND to_char(zsd.PLANNED_COMP_DATE,'YYYY-mm-dd') >= #{startDate}
</if> </if>
<if test="endDate != null and endDate != ''"> <if test="endDate != null and endDate != ''">
AND zsd.PLANNED_COMP_DATE &lt;= TO_DATE(#{endDate},'YYYY-mm-dd') AND to_char(zsd.PLANNED_COMP_DATE,'YYYY-mm-dd') &lt;= #{endDate}
</if> </if>
GROUP BY wct.DESCRIPTION, r.RESRCE, r.DESCRIPTION, OT.DESCRIPTION) WIP GROUP BY wct.DESCRIPTION,o.OPERATION, r.DESCRIPTION, OT.DESCRIPTION) WIP
<where> <where>
1=1 1=1
<if test="resrce != null and resrce != ''"> <if test="resrce != null and resrce != ''">
@ -1734,7 +1772,7 @@
</select> </select>
<select id="monthDeliveryRateReport" parameterType="java.util.HashMap" resultType="java.util.Map" > <select id="monthDeliveryRateReport" parameterType="java.util.HashMap" resultType="java.util.Map" >
SELECT WIP.WORK_CENTER "workCenter", SELECT WIP.WORK_CENTER "workCenter",
WIP.RESRCE "resrceCode", WIP.OPERATION "operationCode",
WIP.OPERATION_DESCRIPTION "operationDescription", WIP.OPERATION_DESCRIPTION "operationDescription",
WIP.RESRCE_DESCRIPTION "resrceDescription", WIP.RESRCE_DESCRIPTION "resrceDescription",
WIP.SUM_QTY "sumQTY", WIP.SUM_QTY "sumQTY",
@ -1745,7 +1783,7 @@
TO_CHAR(DECODE(WIP.SUM_HOURS,0,0,WIP.SUM_DONE_HOURS / WIP.SUM_HOURS) * 100, '99990.99') || '%' "HOURSrate" TO_CHAR(DECODE(WIP.SUM_HOURS,0,0,WIP.SUM_DONE_HOURS / WIP.SUM_HOURS) * 100, '99990.99') || '%' "HOURSrate"
FROM FROM
(SELECT wct.DESCRIPTION WORK_CENTER, (SELECT wct.DESCRIPTION WORK_CENTER,
r.RESRCE, o.OPERATION OPERATION,
OT.DESCRIPTION OPERATION_DESCRIPTION, OT.DESCRIPTION OPERATION_DESCRIPTION,
r.DESCRIPTION RESRCE_DESCRIPTION, r.DESCRIPTION RESRCE_DESCRIPTION,
SUM(zsd.DISPATCH_QTY) SUM_QTY, SUM(zsd.DISPATCH_QTY) SUM_QTY,
@ -1769,12 +1807,12 @@
AND wc.WORK_CENTER = #{workCenter} AND wc.WORK_CENTER = #{workCenter}
</if> </if>
<if test="startDate != null and startDate != ''"> <if test="startDate != null and startDate != ''">
AND zsd.PLANNED_COMP_DATE >= TO_DATE(#{startDate},'YYYY-mm') AND to_char(zsd.PLANNED_COMP_DATE,'yyyy-mm') >= #{startDate}
</if> </if>
<if test="endDate != null and endDate != ''"> <if test="endDate != null and endDate != ''">
AND zsd.PLANNED_COMP_DATE &lt;= TO_DATE(#{endDate},'YYYY-mm') AND to_char(zsd.PLANNED_COMP_DATE,'yyyy-mm') &lt;= #{endDate}
</if> </if>
GROUP BY wct.DESCRIPTION, r.RESRCE, r.DESCRIPTION, OT.DESCRIPTION) WIP GROUP BY wct.DESCRIPTION,o.OPERATION, r.DESCRIPTION, OT.DESCRIPTION) WIP
<where> <where>
1=1 1=1
<if test="resrce != null and resrce != ''"> <if test="resrce != null and resrce != ''">
@ -1953,7 +1991,7 @@
ORDER BY "planCapacity1" DESC ) WIP ORDER BY "planCapacity1" DESC ) WIP
WHERE 8 >= ROWNUM WHERE 8 >= ROWNUM
</select> </select>
<select id="sixShopOrderQTY" resultType="java.util.Map"> <select id="sixShopOrderQTY" resultType="java.util.LinkedHashMap">
SELECT COUNT(WIP.SHOP_ORDER) "shopOrderQTY", SELECT COUNT(WIP.SHOP_ORDER) "shopOrderQTY",
DECODE(SUM(WIP.SHOP_QTY),NULL,0,SUM(WIP.SHOP_QTY)) "sumQTY", DECODE(SUM(WIP.SHOP_QTY),NULL,0,SUM(WIP.SHOP_QTY)) "sumQTY",
DECODE(SUM(WIP.ITEM_QTY),NULL,0,SUM(WIP.ITEM_QTY)) "sumItemQTY", DECODE(SUM(WIP.ITEM_QTY),NULL,0,SUM(WIP.ITEM_QTY)) "sumItemQTY",
@ -1964,9 +2002,9 @@
SELECT ZT.SHOP_ORDER SHOP_ORDER, SELECT ZT.SHOP_ORDER SHOP_ORDER,
SUM(S.QTY) SHOP_QTY, SUM(S.QTY) SHOP_QTY,
COUNT(ROWNUM) ITEM_QTY, COUNT(ROWNUM) ITEM_QTY,
SUM(CASE WHEN ZT.STATUS = 'NEW' THEN 1 ELSE 0 END ) WAIT_SHOP_QTY, MAX(CASE WHEN ZT.STATUS = 'NEW' THEN 1 ELSE 0 END ) WAIT_SHOP_QTY,
SUM(CASE WHEN ZT.STATUS = 'NEW' THEN S.QTY ELSE 0 END ) WAIT_QTY, SUM(CASE WHEN ZT.STATUS = 'NEW' THEN S.QTY ELSE 0 END ) WAIT_QTY,
MAX(CASE WHEN ZT.STATUS = 'COMPLETE' THEN 1 ELSE 0 END ) IS_DONE_SHOP MIN(CASE WHEN ZT.STATUS = 'COMPLETE' THEN 1 ELSE 0 END ) IS_DONE_SHOP
FROM Z_INSPECTION_TASK ZT FROM Z_INSPECTION_TASK ZT
INNER JOIN SFC S ON S.SFC = ZT.SFC AND S.SITE = ZT.SITE INNER JOIN SFC S ON S.SFC = ZT.SFC AND S.SITE = ZT.SITE
WHERE TO_CHAR(SYSDATE, 'yyyy-MM-dd') = TO_CHAR(ZT.CREATED_DATE_TIME, 'yyyy-MM-dd') WHERE TO_CHAR(SYSDATE, 'yyyy-MM-dd') = TO_CHAR(ZT.CREATED_DATE_TIME, 'yyyy-MM-dd')

Loading…
Cancel
Save