|
|
|
@ -1989,14 +1989,13 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<String> getCpDateTitle(QcStaticTable qcStaticTable) {
|
|
|
|
|
|
|
|
|
|
//获取不良种类
|
|
|
|
|
List<String> titles = new ArrayList<>();//qcStaticTableMapper.getCpDefects(qcStaticTable);
|
|
|
|
|
List<String> titles = qcStaticTableMapper.getCpDefects(qcStaticTable);
|
|
|
|
|
titles.add("抽样总数");
|
|
|
|
|
titles.add("A类");
|
|
|
|
|
titles.add("B类");
|
|
|
|
|
titles.add("C类");
|
|
|
|
|
List<String> abctitles = qcStaticTableMapper.getCpDefectTypes(qcStaticTable);
|
|
|
|
|
titles.addAll(abctitles);
|
|
|
|
|
titles.add("不良总数");
|
|
|
|
|
titles.add("不良率");
|
|
|
|
|
titles.add("抽检批数");
|
|
|
|
@ -2005,6 +2004,87 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
|
|
|
|
|
return titles;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<Map<String, String>> getCpDefectDate(QcStaticTable qcStaticTable) {
|
|
|
|
|
List<Map<String, String>> dtos = new ArrayList<>();
|
|
|
|
|
//获取不良项目
|
|
|
|
|
List<String> bpDefects = qcStaticTableMapper.getCpDefects(qcStaticTable);
|
|
|
|
|
//获取不良类别
|
|
|
|
|
List<String> abctitles = qcStaticTableMapper.getCpDefectTypes(qcStaticTable);
|
|
|
|
|
//获取时间
|
|
|
|
|
List<String> days = getDaysOfMonth(Integer.parseInt(qcStaticTable.getYearMonth().split("-")[0]),
|
|
|
|
|
Integer.parseInt(qcStaticTable.getYearMonth().split("-")[1]));
|
|
|
|
|
//不良项目map
|
|
|
|
|
Map<String,QcStaticTable> defectMaps = qcStaticTableMapper.getCpDefectMap(qcStaticTable);
|
|
|
|
|
//抽样分类map
|
|
|
|
|
Map<String,QcStaticTable> abcMaps = qcStaticTableMapper.getCpDefectTypeMap(qcStaticTable);
|
|
|
|
|
//批次map
|
|
|
|
|
Map<String,QcStaticTable> pcMaps = qcStaticTableMapper.getCpDefectPCMap(qcStaticTable);
|
|
|
|
|
//抽样总数map
|
|
|
|
|
Map<String,QcStaticTable> sampMaps = qcStaticTableMapper.getCpSampMap(qcStaticTable);
|
|
|
|
|
|
|
|
|
|
Map<String,String> dto1= null;
|
|
|
|
|
for(String ymd:days){
|
|
|
|
|
dto1= new HashMap<>();
|
|
|
|
|
dto1.put("dataType",ymd);
|
|
|
|
|
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i)+ymd;
|
|
|
|
|
QcStaticTable defectMap = defectMaps.get(defectName);
|
|
|
|
|
if(defectMap!=null){
|
|
|
|
|
dto1.put("dataTitle"+i,defectMap.getNoOkQty().replace(".00",""));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//抽样总数
|
|
|
|
|
String sampKey = ymd;
|
|
|
|
|
QcStaticTable sampMap = sampMaps.get(sampKey);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
dto1.put("dataTitle"+bpDefects.size(),sampMap.getSampleQty().replace(".00",""));
|
|
|
|
|
}
|
|
|
|
|
//ABC类
|
|
|
|
|
BigDecimal noOkQty = BigDecimal.ZERO;
|
|
|
|
|
for(int i=0;i<abctitles.size();i++){
|
|
|
|
|
String defectName = abctitles.get(i)+ymd;
|
|
|
|
|
QcStaticTable abcMap = abcMaps.get(defectName);
|
|
|
|
|
if(abcMap!=null){
|
|
|
|
|
dto1.put("dataTitle"+(bpDefects.size()+1+i),abcMap.getNoOkQty().replace(".00",""));
|
|
|
|
|
noOkQty = noOkQty.add(new BigDecimal(abcMap.getNoOkQty()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//不良总数
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+1),noOkQty.toString());
|
|
|
|
|
//不良率
|
|
|
|
|
BigDecimal nookRate = BigDecimal.ZERO;
|
|
|
|
|
if(sampMap!=null && new BigDecimal(sampMap.getSampleQty()).compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
|
nookRate = noOkQty
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(new BigDecimal(sampMap.getSampleQty()),2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
}
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+2),nookRate+"%");
|
|
|
|
|
//抽检批数//不合格批数//不合格批次率
|
|
|
|
|
QcStaticTable pcMap = pcMaps.get(sampKey);
|
|
|
|
|
BigDecimal nookPcRate = BigDecimal.ZERO;
|
|
|
|
|
if(pcMap!=null){
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+3),pcMap.getSampleQty().replace(".00",""));
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+4),pcMap.getNoOkQty().replace(".00",""));
|
|
|
|
|
if(pcMap!=null && new BigDecimal(pcMap.getSampleQty()).compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
|
nookPcRate = new BigDecimal(pcMap.getNoOkQty())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(new BigDecimal(pcMap.getSampleQty()),2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+5),nookPcRate+"%");
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+3),"0");
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+4),"0");
|
|
|
|
|
dto1.put("dataTitle"+(abctitles.size()+bpDefects.size()+5),"0%");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dtos.add(dto1);
|
|
|
|
|
}
|
|
|
|
|
return dtos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected Map<String,String> getHJRow(List<Map<String, String>> dtos,int days){
|
|
|
|
|
Map<String,String> dto2 = new HashMap<>();
|
|
|
|
|
dto2.put("dataType","合计");
|
|
|
|
|