|
|
|
@ -1281,11 +1281,15 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
|
|
|
|
|
colNameArray = this.getMonthByMonth(qcCPKInfo.getYmArrayStart(),qcCPKInfo.getYmArrayEnd());
|
|
|
|
|
mxMapData = qcStaticTableMapper.getDLData(qcCPKInfo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// List<ProLineDTO> lines = qcStaticTableMapper.getProdLineList()
|
|
|
|
|
|
|
|
|
|
List<HashMap> mapData = new ArrayList<HashMap>();
|
|
|
|
|
List<ChartDTO> echartData = new ArrayList<>();
|
|
|
|
|
HashMap dmap = null;
|
|
|
|
|
ChartDTO edata = null;
|
|
|
|
|
for(QcCPKInfo cpkT:cpkTypeList){
|
|
|
|
|
|
|
|
|
|
dmap = new HashMap();
|
|
|
|
|
|
|
|
|
|
edata = new ChartDTO();
|
|
|
|
@ -1296,54 +1300,67 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
|
|
|
|
|
double USL = cpkT.getUpperDiff().doubleValue();
|
|
|
|
|
double LSL = cpkT.getDownDiff().doubleValue();
|
|
|
|
|
dmap.put("cpkTypeName",cpkT.getCpkTypeName());
|
|
|
|
|
int monthNum = 0;//有数据的月份
|
|
|
|
|
BigDecimal monthSum = BigDecimal.ZERO;
|
|
|
|
|
for(int m=0;m<colNameArray.size();m++){
|
|
|
|
|
String key = cpkT.getCpkType() + "-" + colNameArray.get(m);
|
|
|
|
|
QcStaticTable act = mxMapData.get(key);
|
|
|
|
|
if(act!=null){
|
|
|
|
|
String actArrayStr = act.getQuality().replace("[", "")
|
|
|
|
|
.replace("]", "")
|
|
|
|
|
.replace("\"", "");
|
|
|
|
|
List<String> actArray0 = Arrays.asList(actArrayStr.split(","));
|
|
|
|
|
List<String> actArray = new ArrayList<>();
|
|
|
|
|
for(String avg:actArray0){
|
|
|
|
|
if(avg.matches(".*\\..*\\..*")){
|
|
|
|
|
actArray.add(avg.substring(2));
|
|
|
|
|
}else{
|
|
|
|
|
actArray.add(avg);
|
|
|
|
|
|
|
|
|
|
//for(ProLineDTO proLineDTO:lines){
|
|
|
|
|
int monthNum = 0;//有数据的月份
|
|
|
|
|
BigDecimal monthSum = BigDecimal.ZERO;
|
|
|
|
|
for(int m=0;m<colNameArray.size();m++){
|
|
|
|
|
String key = cpkT.getCpkType() + "-" + colNameArray.get(m);
|
|
|
|
|
QcStaticTable act = mxMapData.get(key);
|
|
|
|
|
if(act!=null){
|
|
|
|
|
String actArrayStr = act.getQuality().replace("[", "")
|
|
|
|
|
.replace("]", "")
|
|
|
|
|
.replace("\"", "");
|
|
|
|
|
List<String> actArray0 = Arrays.asList(actArrayStr.split(","));
|
|
|
|
|
List<String> actArray = new ArrayList<>();
|
|
|
|
|
for(String avg:actArray0){
|
|
|
|
|
if(avg.matches(".*\\..*\\..*")){
|
|
|
|
|
actArray.add(avg.substring(2));
|
|
|
|
|
}else{
|
|
|
|
|
actArray.add(avg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
double[] data = actArray.stream()
|
|
|
|
|
.mapToDouble(Double::parseDouble) // 将String转换为double
|
|
|
|
|
.toArray(); // 转换为double数组 ;
|
|
|
|
|
double[] data = actArray.stream()
|
|
|
|
|
.mapToDouble(Double::parseDouble) // 将String转换为double
|
|
|
|
|
.toArray(); // 转换为double数组 ;
|
|
|
|
|
|
|
|
|
|
double cpk = calculateCpk(data,USL,LSL);
|
|
|
|
|
BigDecimal cpkVal = new BigDecimal(Double.toString(cpk)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
String index = (m+1)+"";
|
|
|
|
|
dmap.put("date"+index,cpkVal);
|
|
|
|
|
monthSum = monthSum.add(cpkVal);
|
|
|
|
|
++monthNum;
|
|
|
|
|
double cpk = calculateCpk(data,USL,LSL);
|
|
|
|
|
BigDecimal cpkVal = new BigDecimal(Double.toString(cpk)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
String index = (m+1)+"";
|
|
|
|
|
dmap.put("date"+index,cpkVal);
|
|
|
|
|
monthSum = monthSum.add(cpkVal);
|
|
|
|
|
++monthNum;
|
|
|
|
|
|
|
|
|
|
serisedata.add(cpkVal.doubleValue());
|
|
|
|
|
|
|
|
|
|
dmap.put("lineName",act.getLineName());
|
|
|
|
|
dmap.put("checkTypeName",act.getCheckTypeName());
|
|
|
|
|
dmap.put("ruleName",act.getRuleName());
|
|
|
|
|
}else{
|
|
|
|
|
String index = (m+1)+"";
|
|
|
|
|
dmap.put("date"+index,"0");
|
|
|
|
|
dmap.put("cpkAvg","0");
|
|
|
|
|
|
|
|
|
|
dmap.put("lineName","");
|
|
|
|
|
dmap.put("checkTypeName","");
|
|
|
|
|
dmap.put("ruleName","");
|
|
|
|
|
|
|
|
|
|
serisedata.add(0.0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
serisedata.add(cpkVal.doubleValue());
|
|
|
|
|
}else{
|
|
|
|
|
String index = (m+1)+"";
|
|
|
|
|
dmap.put("date"+index,"0");
|
|
|
|
|
dmap.put("cpkAvg","0");
|
|
|
|
|
|
|
|
|
|
serisedata.add(0.0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
edata.setData(serisedata);
|
|
|
|
|
edata.setData(serisedata);
|
|
|
|
|
|
|
|
|
|
if(monthNum>0){
|
|
|
|
|
BigDecimal avgBD = monthSum.divide(new BigDecimal(monthNum),2,RoundingMode.HALF_UP);
|
|
|
|
|
dmap.put("cpkAvg",avgBD.toString());
|
|
|
|
|
}
|
|
|
|
|
if(monthNum>0){
|
|
|
|
|
BigDecimal avgBD = monthSum.divide(new BigDecimal(monthNum),2,RoundingMode.HALF_UP);
|
|
|
|
|
dmap.put("cpkAvg",avgBD.toString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mapData.add(dmap);
|
|
|
|
|
echartData.add(edata);
|
|
|
|
|
mapData.add(dmap);
|
|
|
|
|
echartData.add(edata);
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
resultDto.setTableData(mapData);
|
|
|
|
|
resultDto.setEchartData(echartData);
|
|
|
|
|