@ -1,14 +1,19 @@
package cn.estsh.i3plus.ext.mes.apiservice.daoimpl ;
import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao ;
import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanUtil ;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil ;
import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel ;
import lombok.extern.slf4j.Slf4j ;
import org.hibernate.SQLQuery ;
import org.hibernate.transform.Transformers ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
import javax.persistence.EntityManager ;
import javax.persistence.Query ;
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.List ;
/ * *
@ -27,15 +32,28 @@ public class MesWorkOrderDaoImpl implements IMesWorkOrderDao {
@Override
public List < MesWorkOrderModel > sumMesWorkOrderQtyToSap ( String organizeCode , List < Integer > statusList ) {
StringBuffer hql = new StringBuffer ( "select new " + MesWorkOrderModel . class . getName ( ) + "(partNo,planStartTime,productVersion,sum(case when workOrderStatus = 40 then 0 else qty end) as sumQty) " +
" from MesWorkOrder where isDeleted=:isDeleted and isValid = :isValid and organizeCode = :organizeCode " +
" and workOrderType = 20 " +
"and workOrderStatus not in(:statusList) group by partNo,planStartTime,productVersion" ) ;
Query query = entityManager . createQuery ( hql . toString ( ) , MesWorkOrderModel . class ) ;
StringBuffer hql = new StringBuffer ( "select part_No as partNo, plan_Start_Time as planStartTime, product_Version as productVersion, " +
" sum( CASE WHEN work_Order_Status = 40 THEN complete_Qty ELSE qty END ) AS sumQty " +
" from Mes_Work_Order where is_Deleted=:isDeleted and is_Valid = :isValid and organize_Code = :organizeCode " +
" and work_order_type = 20 " +
"and work_Order_Status not in(:statusList) group by part_No, date_format( plan_Start_Time, '%Y-%m-%d' ), product_Version " ) ;
Query query = entityManager . createNativeQuery ( hql . toString ( ) ) ;
query . setParameter ( "organizeCode" , organizeCode ) ;
query . setParameter ( "isValid" , CommonEnumUtil . TRUE_OR_FALSE . TRUE . getValue ( ) ) ;
query . setParameter ( "isDeleted" , CommonEnumUtil . TRUE_OR_FALSE . FALSE . getValue ( ) ) ;
query . setParameter ( "statusList" , statusList ) ;
return query . getResultList ( ) ;
query . unwrap ( SQLQuery . class ) . setResultTransformer ( Transformers . ALIAS_TO_ENTITY_MAP ) ;
List < HashMap < String , Object > > hashMaps = query . getResultList ( ) ;
List < MesWorkOrderModel > mesWorkOrderList = new ArrayList < > ( ) ;
for ( HashMap < String , Object > hashMap : hashMaps ) {
try {
mesWorkOrderList . add ( ( MesWorkOrderModel ) BeanUtil . populateBean ( hashMap , MesWorkOrderModel . class ) ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
return mesWorkOrderList ;
}
}