|
|
|
@ -12,6 +12,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
import javax.persistence.EntityManager;
|
|
|
|
|
import javax.persistence.Query;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -71,12 +72,14 @@ public class MesYfBoardDaoImpl implements IMesYfBoardDao {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesWorkCenterBoardResultModel> queryCompletedSnInfo(String workCenterCode, String organizeCode, String startTime, String endTime) {
|
|
|
|
|
//先查询生产加工表中指定时间区间、指定产线已加工完成的数据
|
|
|
|
|
public List<MesWorkCenterBoardResultModel> queryCompletedSnInfo(String workCenterCode, String organizeCode, String startTime, String endTime, Set<String> workOrderNoSet) {
|
|
|
|
|
//先查询生产加工表中指定时间区间、指定产线(指定工单)已加工完成的数据(过程条码,创建时间、工单号,物料号)
|
|
|
|
|
StringBuffer queryMesProductionRecordSql = new StringBuffer();
|
|
|
|
|
queryMesProductionRecordSql.append("select distinct new " + MesWorkCenterBoardResultModel.class.getName() +
|
|
|
|
|
queryMesProductionRecordSql.append("select new " + MesWorkCenterBoardResultModel.class.getName() +
|
|
|
|
|
"(serialNumber, " +
|
|
|
|
|
"createDatetime) " +
|
|
|
|
|
"createDatetime, " +
|
|
|
|
|
"workOrderNo, " +
|
|
|
|
|
"partNo) " +
|
|
|
|
|
"from MesProductionRecord " +
|
|
|
|
|
"where isValid = :isValid " +
|
|
|
|
|
"and isDeleted = :isDeleted " +
|
|
|
|
@ -85,6 +88,9 @@ public class MesYfBoardDaoImpl implements IMesYfBoardDao {
|
|
|
|
|
"and isComplete = :isComplete " +
|
|
|
|
|
"and createDatetime >= :startTime " +
|
|
|
|
|
"and createDatetime <= :endTime ");
|
|
|
|
|
if (!CollectionUtils.isEmpty(workOrderNoSet)) {
|
|
|
|
|
queryMesProductionRecordSql.append("and workOrderNo in (:workOrderNoSet) ");
|
|
|
|
|
}
|
|
|
|
|
Query mesProductionRecordQuery = entityManager.createQuery(queryMesProductionRecordSql.toString(), MesWorkCenterBoardResultModel.class);
|
|
|
|
|
mesProductionRecordQuery.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
mesProductionRecordQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
@ -93,13 +99,17 @@ public class MesYfBoardDaoImpl implements IMesYfBoardDao {
|
|
|
|
|
mesProductionRecordQuery.setParameter("isComplete", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
mesProductionRecordQuery.setParameter("startTime", startTime);
|
|
|
|
|
mesProductionRecordQuery.setParameter("endTime", endTime);
|
|
|
|
|
if (!CollectionUtils.isEmpty(workOrderNoSet)) {
|
|
|
|
|
mesProductionRecordQuery.setParameter("workOrderNoSet", workOrderNoSet);
|
|
|
|
|
}
|
|
|
|
|
List<MesWorkCenterBoardResultModel> productionRecordQueryResultList = mesProductionRecordQuery.getResultList();
|
|
|
|
|
if (!CollectionUtils.isEmpty(productionRecordQueryResultList)) {
|
|
|
|
|
//取出所有过程条码
|
|
|
|
|
List<String> serialNumberList = productionRecordQueryResultList.
|
|
|
|
|
stream().map(MesWorkCenterBoardResultModel::getSerialNumber).collect(Collectors.toList());
|
|
|
|
|
//查询合格的过程条码与对应的物料号 拼接后的结果
|
|
|
|
|
StringBuffer queryMesProduceSnSql = new StringBuffer();
|
|
|
|
|
queryMesProduceSnSql.append("select distinct serialNumber " +
|
|
|
|
|
queryMesProduceSnSql.append("select CONCAT(serial_number,part_no) " +
|
|
|
|
|
"from MesProduceSn " +
|
|
|
|
|
"where isValid = :isValid " +
|
|
|
|
|
"and isDeleted = :isDeleted " +
|
|
|
|
@ -114,7 +124,7 @@ public class MesYfBoardDaoImpl implements IMesYfBoardDao {
|
|
|
|
|
mesProduceSnQuery.setParameter("serialNumberList", serialNumberList);
|
|
|
|
|
List<String> resultList = mesProduceSnQuery.getResultList();
|
|
|
|
|
for (MesWorkCenterBoardResultModel resultModel : productionRecordQueryResultList) {
|
|
|
|
|
if (resultList.contains(resultModel.getSerialNumber())) {
|
|
|
|
|
if (!CollectionUtils.isEmpty(resultList) && resultList.contains(resultModel.getSerialNumber() + resultModel.getPartNo())) {
|
|
|
|
|
resultModel.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
}else {
|
|
|
|
|
resultModel.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.SUSPICIOUS.getValue());
|
|
|
|
|