|
|
|
@ -30,106 +30,107 @@ public class AssemblyPartReportDaoImpl implements IAssemblyPartReportDao {
|
|
|
|
|
public ListPager<AssemblyPartReportModel> queryReport(AssemblyPartReportModel model, Pager pager) {
|
|
|
|
|
StringBuilder dataQueryHql = new StringBuilder();
|
|
|
|
|
dataQueryHql.append("SELECT new ").append(AssemblyPartReportModel.class.getName()).append("(");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.serialNumber AS serialNumber,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.workCenterCode AS workCenterCode,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.workCellCode AS workCellCode,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.partNo AS partNo,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.partName AS partName,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.matchType AS matchType,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.matchRule AS matchRule,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.assemblyPartNo AS assemblyPartNo,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.assemblyPartName AS assemblyPartName,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.assemblySn AS assemblySn,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.productSn AS productSn,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.isSkip AS isSkip,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.createDatetime AS createDatetime,");
|
|
|
|
|
dataQueryHql.append("mes_production_assembly.createUser AS createUser,");
|
|
|
|
|
dataQueryHql.append("mes_production_record.workOrderNo AS workOrderNo,");
|
|
|
|
|
dataQueryHql.append("mes_production_record.lotNo AS lotNo,");
|
|
|
|
|
dataQueryHql.append("mes_equipment.equipmentName AS equipmentName,");
|
|
|
|
|
dataQueryHql.append("mes_equipment.equipId AS equipId ");
|
|
|
|
|
dataQueryHql.append("a.organizeCode,");
|
|
|
|
|
dataQueryHql.append("a.custSn,");
|
|
|
|
|
dataQueryHql.append("a.serialNumber,");
|
|
|
|
|
dataQueryHql.append("a.workCenterCode,");
|
|
|
|
|
dataQueryHql.append("a.workCellCode,");
|
|
|
|
|
dataQueryHql.append("a.partNo,");
|
|
|
|
|
dataQueryHql.append("a.partName,");
|
|
|
|
|
dataQueryHql.append("a.matchType,");
|
|
|
|
|
dataQueryHql.append("a.matchRule,");
|
|
|
|
|
dataQueryHql.append("a.assemblyPartNo,");
|
|
|
|
|
dataQueryHql.append("a.assemblyPartName,");
|
|
|
|
|
dataQueryHql.append("a.assemblySn,");
|
|
|
|
|
dataQueryHql.append("a.productSn,");
|
|
|
|
|
dataQueryHql.append("a.isSkip,");
|
|
|
|
|
dataQueryHql.append("a.createDatetime,");
|
|
|
|
|
dataQueryHql.append("a.createUser,");
|
|
|
|
|
dataQueryHql.append("b.workOrderNo,");
|
|
|
|
|
dataQueryHql.append("b.lotNo,");
|
|
|
|
|
dataQueryHql.append("c.equipmentName,");
|
|
|
|
|
dataQueryHql.append("c.equipId ");
|
|
|
|
|
dataQueryHql.append(") ");
|
|
|
|
|
|
|
|
|
|
StringBuilder countQueryHql= new StringBuilder();
|
|
|
|
|
countQueryHql.append("select count(1)");
|
|
|
|
|
|
|
|
|
|
StringBuilder commonQueryHql = new StringBuilder();
|
|
|
|
|
commonQueryHql.append("FROM MesProductionAssembly mes_production_assembly ");
|
|
|
|
|
commonQueryHql.append("JOIN MesProductionRecord mes_production_record ON mes_production_assembly.productionRecordId = mes_production_record.id ");
|
|
|
|
|
commonQueryHql.append("JOIN MesEquipment mes_equipment ON mes_production_record.equipmentCode = mes_equipment.equipmentCode ");
|
|
|
|
|
commonQueryHql.append("FROM MesProductionAssembly a ");
|
|
|
|
|
commonQueryHql.append("JOIN MesProductionRecord b ON a.productionRecordId = b.id AND a.organizeCode=b.organizeCode ");
|
|
|
|
|
commonQueryHql.append("JOIN MesEquipment c ON b.equipmentCode = c.equipmentCode AND c.organizeCode=b.organizeCode ");
|
|
|
|
|
commonQueryHql.append("WHERE 1=1 ");
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.organizeCode = :organizeCode ");
|
|
|
|
|
commonQueryHql.append("AND mes_production_record.organizeCode = :organizeCode ");
|
|
|
|
|
commonQueryHql.append("AND mes_equipment.organizeCode = :organizeCode ");
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.isDeleted = :isDeleted ");
|
|
|
|
|
commonQueryHql.append("AND mes_production_record.isDeleted = :isDeleted ");
|
|
|
|
|
commonQueryHql.append("AND mes_equipment.isDeleted = :isDeleted ");
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.isValid = :isValid ");
|
|
|
|
|
commonQueryHql.append("AND mes_production_record.isValid = :isValid ");
|
|
|
|
|
commonQueryHql.append("AND mes_equipment.isValid = :isValid ");
|
|
|
|
|
commonQueryHql.append("AND a.organizeCode = :organizeCode ");
|
|
|
|
|
commonQueryHql.append("AND b.organizeCode = :organizeCode ");
|
|
|
|
|
commonQueryHql.append("AND c.organizeCode = :organizeCode ");
|
|
|
|
|
commonQueryHql.append("AND a.isDeleted = :isDeleted ");
|
|
|
|
|
commonQueryHql.append("AND b.isDeleted = :isDeleted ");
|
|
|
|
|
commonQueryHql.append("AND c.isDeleted = :isDeleted ");
|
|
|
|
|
commonQueryHql.append("AND a.isValid = :isValid ");
|
|
|
|
|
commonQueryHql.append("AND b.isValid = :isValid ");
|
|
|
|
|
commonQueryHql.append("AND c.isValid = :isValid ");
|
|
|
|
|
// like 条码
|
|
|
|
|
if(!StringUtils.isEmpty(model.getSerialNumber())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.serialNumber like :serialNumber ");
|
|
|
|
|
commonQueryHql.append("AND a.serialNumber like :serialNumber ");
|
|
|
|
|
}
|
|
|
|
|
// = 装配件条码确认规则
|
|
|
|
|
if (!StringUtils.isEmpty(model.getMatchRule())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.matchRule = :matchRule ");
|
|
|
|
|
commonQueryHql.append("AND a.matchRule = :matchRule ");
|
|
|
|
|
}
|
|
|
|
|
// like 零件号
|
|
|
|
|
if(!StringUtils.isEmpty(model.getPartNo())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.partNo like :partNo ");
|
|
|
|
|
commonQueryHql.append("AND a.partNo like :partNo ");
|
|
|
|
|
}
|
|
|
|
|
//like 主零件号
|
|
|
|
|
if(!StringUtils.isEmpty(model.getPartName())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.partName like :partName ");
|
|
|
|
|
commonQueryHql.append("AND a.partName like :partName ");
|
|
|
|
|
}
|
|
|
|
|
//like 装配零件号
|
|
|
|
|
if(!StringUtils.isEmpty(model.getAssemblyPartNo())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.assemblyPartNo like :assemblyPartNo ");
|
|
|
|
|
commonQueryHql.append("AND a.assemblyPartNo like :assemblyPartNo ");
|
|
|
|
|
}
|
|
|
|
|
//like 装配件零件名称
|
|
|
|
|
if(!StringUtils.isEmpty(model.getAssemblyPartName())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.assemblyPartName like :assemblyPartName ");
|
|
|
|
|
commonQueryHql.append("AND a.assemblyPartName like :assemblyPartName ");
|
|
|
|
|
}
|
|
|
|
|
//like 装配条码
|
|
|
|
|
if(!StringUtils.isEmpty(model.getAssemblySn())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.assemblySn like :assemblySn ");
|
|
|
|
|
commonQueryHql.append("AND a.assemblySn like :assemblySn ");
|
|
|
|
|
}
|
|
|
|
|
// = 是否跳过
|
|
|
|
|
if(model.getIsSkip() != null){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.isSkip = :isSkip ");
|
|
|
|
|
commonQueryHql.append("AND a.isSkip = :isSkip ");
|
|
|
|
|
}
|
|
|
|
|
//like 创建人
|
|
|
|
|
if(!StringUtils.isEmpty(model.getCreateUser())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.createUser like :createUser ");
|
|
|
|
|
commonQueryHql.append("AND a.createUser like :createUser ");
|
|
|
|
|
}
|
|
|
|
|
//范围时间 创建时间
|
|
|
|
|
if (!StringUtils.isEmpty(model.getCreateDateTimeStart()) && !StringUtils.isEmpty(model.getCreateDateTimeEnd())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.createDatetime between :createDateTimeStart and :createDateTimeEnd ");
|
|
|
|
|
commonQueryHql.append("AND a.createDatetime between :createDateTimeStart and :createDateTimeEnd ");
|
|
|
|
|
}
|
|
|
|
|
//like 产线
|
|
|
|
|
if(!StringUtils.isEmpty(model.getWorkCenterCode())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.workCenterCode like :workCenterCode ");
|
|
|
|
|
commonQueryHql.append("AND a.workCenterCode like :workCenterCode ");
|
|
|
|
|
}
|
|
|
|
|
//like 工位编号
|
|
|
|
|
if(!StringUtils.isEmpty(model.getWorkCellCode())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.workCellCode like :workCellCode ");
|
|
|
|
|
commonQueryHql.append("AND a.workCellCode like :workCellCode ");
|
|
|
|
|
}
|
|
|
|
|
if (model.getMatchType()!=null){
|
|
|
|
|
commonQueryHql.append("AND mes_production_assembly.matchRule = :matchRule ");
|
|
|
|
|
commonQueryHql.append("AND a.matchRule = :matchRule ");
|
|
|
|
|
}
|
|
|
|
|
//like 加工单号
|
|
|
|
|
if(!StringUtils.isEmpty(model.getWorkOrderNo())){
|
|
|
|
|
commonQueryHql.append("AND mes_production_record.workOrderNo like :workOrderNo ");
|
|
|
|
|
commonQueryHql.append("AND b.workOrderNo like :workOrderNo ");
|
|
|
|
|
}
|
|
|
|
|
//like 设备名称
|
|
|
|
|
if(!StringUtils.isEmpty(model.getEquipmentName())){
|
|
|
|
|
commonQueryHql.append("AND mes_equipment.equipmentName like :equipmentName ");
|
|
|
|
|
commonQueryHql.append("AND c.equipmentName like :equipmentName ");
|
|
|
|
|
}
|
|
|
|
|
if (model.getEquipId()!=null){
|
|
|
|
|
commonQueryHql.append("AND mes_equipment.equipId = :equipId ");
|
|
|
|
|
commonQueryHql.append("AND c.equipId = :equipId ");
|
|
|
|
|
}
|
|
|
|
|
commonQueryHql.append("ORDER BY mes_production_assembly.createDatetime DESC ");
|
|
|
|
|
commonQueryHql.append("ORDER BY a.createDatetime DESC ");
|
|
|
|
|
|
|
|
|
|
Query dataQuery = entityManager.createQuery(dataQueryHql.append(commonQueryHql).toString(), AssemblyPartReportModel.class);
|
|
|
|
|
setQueryParams(dataQuery, model);
|
|
|
|
@ -139,9 +140,7 @@ public class AssemblyPartReportDaoImpl implements IAssemblyPartReportDao {
|
|
|
|
|
//本次查询满足条件的总数
|
|
|
|
|
int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult()));
|
|
|
|
|
pager = PagerHelper.getPager(pager, count);
|
|
|
|
|
//查询本页数据
|
|
|
|
|
dataQuery.setMaxResults(pager.getPageSize());
|
|
|
|
|
dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize());
|
|
|
|
|
dataQuery.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize());
|
|
|
|
|
List<AssemblyPartReportModel> resultList = dataQuery.getResultList();
|
|
|
|
|
return new ListPager<>(resultList, pager);
|
|
|
|
|
}
|
|
|
|
|