|
|
|
@ -1455,6 +1455,41 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
|
|
|
|
|
dtos.add(dto3);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//总合计
|
|
|
|
|
Map<String,QcStaticTable> sampHzMaps = qcStaticTableMapper.getBPNoOkHzMap(qcStaticTable);
|
|
|
|
|
Map<String,String> dto4 = new HashMap<>();
|
|
|
|
|
dto4.put("materialName","总合计");
|
|
|
|
|
dto4.put("dataType","抽检数");
|
|
|
|
|
|
|
|
|
|
Map<String,String> dto5 = new HashMap<>();
|
|
|
|
|
dto5.put("materialName","总合计");
|
|
|
|
|
dto5.put("dataType","不良品数");
|
|
|
|
|
|
|
|
|
|
Map<String,String> dto6 = new HashMap<>();
|
|
|
|
|
dto6.put("materialName","总合计");
|
|
|
|
|
dto6.put("dataType","不良率%");
|
|
|
|
|
|
|
|
|
|
for(int m=0;m<days.size();m++){
|
|
|
|
|
QcStaticTable sampMap = sampHzMaps.get(days.get(m));
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
BigDecimal nookqty = new BigDecimal(StringUtils.isEmpty(sampMap.getNoOkQty())?"0":sampMap.getNoOkQty());
|
|
|
|
|
BigDecimal sampleqty = new BigDecimal(sampMap.getSampleQty());
|
|
|
|
|
dto4.put("monthNum"+m,sampMap.getSampleQty().replace(".00",""));
|
|
|
|
|
dto5.put("monthNum"+m,sampMap.getNoOkQty().replace(".00",""));
|
|
|
|
|
if(StringUtils.isEmpty(sampMap.getSampleQty())||sampleqty.compareTo(BigDecimal.ZERO)==0){
|
|
|
|
|
dto6.put("monthNum"+m,"0.00%");
|
|
|
|
|
}else{
|
|
|
|
|
BigDecimal nookrate = nookqty.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(sampleqty,2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
dto6.put("monthNum"+m,nookrate+"%");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dtos.add(dto4);
|
|
|
|
|
dtos.add(dto5);
|
|
|
|
|
dtos.add(dto6);
|
|
|
|
|
|
|
|
|
|
return dtos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1542,6 +1577,41 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
|
|
|
|
|
dtos.add(dto3);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//总合计
|
|
|
|
|
Map<String,QcStaticTable> sampHzMaps = qcStaticTableMapper.getBPReworkHzMap(qcStaticTable);
|
|
|
|
|
Map<String,String> dto4 = new HashMap<>();
|
|
|
|
|
dto4.put("materialName","总合计");
|
|
|
|
|
dto4.put("dataType","抽检次数");
|
|
|
|
|
|
|
|
|
|
Map<String,String> dto5 = new HashMap<>();
|
|
|
|
|
dto5.put("materialName","总合计");
|
|
|
|
|
dto5.put("dataType","返工次数");
|
|
|
|
|
|
|
|
|
|
Map<String,String> dto6 = new HashMap<>();
|
|
|
|
|
dto6.put("materialName","总合计");
|
|
|
|
|
dto6.put("dataType","返工率%");
|
|
|
|
|
|
|
|
|
|
for(int m=0;m<days.size();m++){
|
|
|
|
|
QcStaticTable sampMap = sampHzMaps.get(days.get(m));
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
BigDecimal nookqty = new BigDecimal(StringUtils.isEmpty(sampMap.getNoOkQty())?"0":sampMap.getNoOkQty());
|
|
|
|
|
BigDecimal sampleqty = new BigDecimal(sampMap.getSampleQty());
|
|
|
|
|
dto4.put("monthNum"+m,sampMap.getSampleQty().replace(".00",""));
|
|
|
|
|
dto5.put("monthNum"+m,sampMap.getNoOkQty().replace(".00",""));
|
|
|
|
|
if(StringUtils.isEmpty(sampMap.getSampleQty())||sampleqty.compareTo(BigDecimal.ZERO)==0){
|
|
|
|
|
dto6.put("monthNum"+m,"0.00%");
|
|
|
|
|
}else{
|
|
|
|
|
BigDecimal nookrate = nookqty.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(sampleqty,2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
dto6.put("monthNum"+m,nookrate+"%");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dtos.add(dto4);
|
|
|
|
|
dtos.add(dto5);
|
|
|
|
|
dtos.add(dto6);
|
|
|
|
|
|
|
|
|
|
return dtos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1609,6 +1679,239 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
|
|
|
|
|
dtos.add(dto3);
|
|
|
|
|
return dtos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<String> getDefectItemTitle(QcStaticTable qcStaticTable) {
|
|
|
|
|
return qcStaticTableMapper.getBpDefects(qcStaticTable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<Map<String, String>> getDefectItemData(QcStaticTable qcStaticTable) {
|
|
|
|
|
List<Map<String, String>> dtos = new ArrayList<>();
|
|
|
|
|
//获取不良种类
|
|
|
|
|
List<String> bpDefects = qcStaticTableMapper.getBpDefects(qcStaticTable);
|
|
|
|
|
Map<String,QcStaticTable> defectMaps = qcStaticTableMapper.getBPDefectMothMap(qcStaticTable);
|
|
|
|
|
|
|
|
|
|
BigDecimal rowSum= BigDecimal.ZERO;
|
|
|
|
|
BigDecimal rowSumRate= BigDecimal.ZERO;
|
|
|
|
|
Map<String,String> dto1= new HashMap<>();
|
|
|
|
|
dto1.put("dataType","不良品数");
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
dto1.put("item"+i,sampMap.getNoOkQty().replace(".00",""));
|
|
|
|
|
rowSum = rowSum.add(new BigDecimal(sampMap.getNoOkQty()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dtos.add(dto1);
|
|
|
|
|
|
|
|
|
|
Map<String,String> dto2= new HashMap<>();
|
|
|
|
|
dto2.put("dataType","不良比例");
|
|
|
|
|
Map<String,String> dto3 = new HashMap<>();
|
|
|
|
|
dto3.put("dataType","累计不良率");
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
if(rowSum.compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
|
BigDecimal nookRate = new BigDecimal(sampMap.getNoOkQty())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(rowSum,2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
rowSumRate = rowSumRate.add(nookRate);
|
|
|
|
|
dto2.put("item"+i,nookRate.toString()+"%");
|
|
|
|
|
dto3.put("item"+i,rowSumRate.toString()+"%");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dtos.add(dto2);
|
|
|
|
|
dtos.add(dto3);
|
|
|
|
|
return dtos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public QcStaticTable getDefectItemLine(QcStaticTable qcStaticTable) {
|
|
|
|
|
QcStaticTable dto = new QcStaticTable();
|
|
|
|
|
|
|
|
|
|
//获取不良种类
|
|
|
|
|
List<String> bpDefects = qcStaticTableMapper.getBpDefects(qcStaticTable);
|
|
|
|
|
dto.setSupplierCodes(bpDefects);
|
|
|
|
|
|
|
|
|
|
Map<String,QcStaticTable> defectMaps = qcStaticTableMapper.getBPDefectMothMap(qcStaticTable);
|
|
|
|
|
|
|
|
|
|
BigDecimal rowSum= BigDecimal.ZERO;
|
|
|
|
|
BigDecimal rowSumRate= BigDecimal.ZERO;
|
|
|
|
|
Map<String,String> dto1= new HashMap<>();
|
|
|
|
|
dto1.put("dataType","不良品数");
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
rowSum = rowSum.add(new BigDecimal(sampMap.getNoOkQty()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//左侧y轴
|
|
|
|
|
List<String> titleCol1 = new ArrayList<>();
|
|
|
|
|
//右侧y轴
|
|
|
|
|
List<String> titleCol2 = new ArrayList<>();
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
if(rowSum.compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
|
BigDecimal nookRate = new BigDecimal(sampMap.getNoOkQty())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(rowSum,2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
rowSumRate = rowSumRate.add(nookRate);
|
|
|
|
|
titleCol1.add(nookRate.toString());
|
|
|
|
|
titleCol2.add(rowSumRate.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dto.setColumns1(titleCol1);
|
|
|
|
|
dto.setColumns2(titleCol2);
|
|
|
|
|
|
|
|
|
|
//form
|
|
|
|
|
dto.setColumn080090(qcStaticTable.getYearMonth().split("-")[0]);
|
|
|
|
|
dto.setColumn090100(qcStaticTable.getYearMonth().split("-")[1]);
|
|
|
|
|
dto.setMaterialName("白坯");
|
|
|
|
|
dto.setWorkCenter("白坯车间");
|
|
|
|
|
QcStaticTable hzdto = qcStaticTableMapper.getBPHzInfo(qcStaticTable);
|
|
|
|
|
dto.setSampleQty(hzdto.getSampleQty());
|
|
|
|
|
dto.setNoOkQty(hzdto.getNoOkQty());
|
|
|
|
|
dto.setNoOkNumRate(
|
|
|
|
|
new BigDecimal(hzdto.getNoOkQty())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(new BigDecimal(hzdto.getSampleQty()),2,BigDecimal.ROUND_HALF_UP)+"%"
|
|
|
|
|
);
|
|
|
|
|
dto.setOkNumRate(
|
|
|
|
|
new BigDecimal("100")
|
|
|
|
|
.subtract(
|
|
|
|
|
new BigDecimal(hzdto.getNoOkQty())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(new BigDecimal(hzdto.getSampleQty()),2,BigDecimal.ROUND_HALF_UP)
|
|
|
|
|
)+"%"
|
|
|
|
|
);
|
|
|
|
|
return dto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public List<Map<String, String>> getDefectItemDataPC(QcStaticTable qcStaticTable) {
|
|
|
|
|
List<Map<String, String>> dtos = new ArrayList<>();
|
|
|
|
|
//获取不良种类
|
|
|
|
|
List<String> bpDefects = qcStaticTableMapper.getBpDefects(qcStaticTable);
|
|
|
|
|
Map<String,QcStaticTable> defectMaps = qcStaticTableMapper.getBPDefectMothPCMap(qcStaticTable);
|
|
|
|
|
|
|
|
|
|
BigDecimal rowSum= BigDecimal.ZERO;
|
|
|
|
|
BigDecimal rowSumRate= BigDecimal.ZERO;
|
|
|
|
|
Map<String,String> dto1= new HashMap<>();
|
|
|
|
|
dto1.put("dataType","不良数");
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
dto1.put("item"+i,sampMap.getNoOkQty().replace(".00",""));
|
|
|
|
|
rowSum = rowSum.add(new BigDecimal(sampMap.getNoOkQty()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dtos.add(dto1);
|
|
|
|
|
|
|
|
|
|
Map<String,String> dto2= new HashMap<>();
|
|
|
|
|
dto2.put("dataType","不良比例");
|
|
|
|
|
Map<String,String> dto3 = new HashMap<>();
|
|
|
|
|
dto3.put("dataType","累计不良率");
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
if(rowSum.compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
|
BigDecimal nookRate = new BigDecimal(sampMap.getNoOkQty())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(rowSum,2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
rowSumRate = rowSumRate.add(nookRate);
|
|
|
|
|
dto2.put("item"+i,nookRate.toString()+"%");
|
|
|
|
|
dto3.put("item"+i,rowSumRate.toString()+"%");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dtos.add(dto2);
|
|
|
|
|
dtos.add(dto3);
|
|
|
|
|
return dtos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public QcStaticTable getDefectItemLinePC(QcStaticTable qcStaticTable) {
|
|
|
|
|
QcStaticTable dto = new QcStaticTable();
|
|
|
|
|
|
|
|
|
|
//获取不良种类
|
|
|
|
|
List<String> bpDefects = qcStaticTableMapper.getBpDefects(qcStaticTable);
|
|
|
|
|
dto.setSupplierCodes(bpDefects);
|
|
|
|
|
|
|
|
|
|
Map<String,QcStaticTable> defectMaps = qcStaticTableMapper.getBPDefectMothPCMap(qcStaticTable);
|
|
|
|
|
|
|
|
|
|
BigDecimal rowSum= BigDecimal.ZERO;
|
|
|
|
|
BigDecimal rowSumRate= BigDecimal.ZERO;
|
|
|
|
|
Map<String,String> dto1= new HashMap<>();
|
|
|
|
|
dto1.put("dataType","不良数");
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
rowSum = rowSum.add(new BigDecimal(sampMap.getNoOkQty()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//左侧y轴
|
|
|
|
|
List<String> titleCol1 = new ArrayList<>();
|
|
|
|
|
//右侧y轴
|
|
|
|
|
List<String> titleCol2 = new ArrayList<>();
|
|
|
|
|
for(int i=0;i<bpDefects.size();i++){
|
|
|
|
|
String defectName = bpDefects.get(i);
|
|
|
|
|
QcStaticTable sampMap = defectMaps.get(defectName);
|
|
|
|
|
if(sampMap!=null){
|
|
|
|
|
if(rowSum.compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
|
BigDecimal nookRate = new BigDecimal(sampMap.getNoOkQty())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(rowSum,2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
rowSumRate = rowSumRate.add(nookRate);
|
|
|
|
|
titleCol1.add(nookRate.toString());
|
|
|
|
|
titleCol2.add(rowSumRate.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
dto.setColumns1(titleCol1);
|
|
|
|
|
dto.setColumns2(titleCol2);
|
|
|
|
|
|
|
|
|
|
//form
|
|
|
|
|
dto.setColumn080090(qcStaticTable.getYearMonth().split("-")[0]);
|
|
|
|
|
dto.setColumn090100(qcStaticTable.getYearMonth().split("-")[1]);
|
|
|
|
|
dto.setMaterialName("白坯");
|
|
|
|
|
dto.setWorkCenter("白坯车间");
|
|
|
|
|
QcStaticTable hzdto = qcStaticTableMapper.getBPHzInfo(qcStaticTable);
|
|
|
|
|
dto.setSampleQty(hzdto.getSampleQty());
|
|
|
|
|
dto.setNoOkNums(hzdto.getNoOkNums());
|
|
|
|
|
dto.setNoOkNumRate(
|
|
|
|
|
new BigDecimal(hzdto.getNoOkNums())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(new BigDecimal(hzdto.getSampleQty()),2,BigDecimal.ROUND_HALF_UP)+"%"
|
|
|
|
|
);
|
|
|
|
|
dto.setOkNumRate(
|
|
|
|
|
new BigDecimal("100")
|
|
|
|
|
.subtract(
|
|
|
|
|
new BigDecimal(hzdto.getNoOkNums())
|
|
|
|
|
.multiply(new BigDecimal("100"))
|
|
|
|
|
.divide(new BigDecimal(hzdto.getSampleQty()),2,BigDecimal.ROUND_HALF_UP)
|
|
|
|
|
)+"%"
|
|
|
|
|
);
|
|
|
|
|
return dto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected Map<String,String> getHJRow(List<Map<String, String>> dtos,int days){
|
|
|
|
|
Map<String,String> dto2 = new HashMap<>();
|
|
|
|
|
dto2.put("dataType","合计");
|
|
|
|
|