@ -11,6 +11,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil ;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack ;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup ;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord ;
import cn.estsh.i3plus.pojo.mes.bean.seres.MesCimSeresJisVinOverPoint ;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail ;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingKanbanCfg ;
@ -31,6 +32,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils ;
import javax.persistence.EntityManager ;
import javax.persistence.NoResultException ;
import javax.persistence.Query ;
import java.math.BigDecimal ;
import java.math.RoundingMode ;
@ -85,7 +87,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
}
@Override
public void s aveShippingKanbanCfg( MesShippingKanbanCfgModel request , String organizeCode , String username ) {
public void doS aveShippingKanbanCfg( MesShippingKanbanCfgModel request , String organizeCode , String username ) {
if ( request . getConfig ( ) = = null ) {
return ;
}
@ -229,7 +231,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
continue ;
}
if ( NumberUtil . isNumber ( value ) ) {
if ( Integer. parseInt ( value ) < Integer . parseInt ( rangValue ) ) {
if ( Long. parseLong ( value ) < Long . parseLong ( rangValue ) ) {
return cfgDetail . getRangColorLess ( ) ;
}
} else {
@ -247,7 +249,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
continue ;
}
if ( NumberUtil . isNumber ( value ) ) {
if ( Integer. parseInt ( value ) > = Integer . parseInt ( rangValue ) ) {
if ( Long. parseLong ( value ) > = Long . parseLong ( rangValue ) ) {
return cfgDetail . getRangColorMore ( ) ;
}
} else {
@ -275,21 +277,25 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
return partShippingGroupRDao . findByHqlWhere ( packBean ) ;
}
private String get ShippingVin( String organizeCode , List < String > shippingGroupCodes , List < Integer > status ) {
private String get Mes ShippingVin( String organizeCode , List < String > shippingGroupCodes , List < Integer > status ) {
StringBuilder hql = new StringBuilder ( ) ;
hql . append ( "select sd.vin" ) ;
hql . append ( " from MesShippingOrderManagement s inner join MesShippingOrderManagementDetail sd on s.id = sd.pid and sd.organizeCode = :organizeCode and sd.isDeleted=:isDeleted and sd.isValid=:isValid " ) ;
hql . append ( " and s.status in (:status) " ) ;
hql . append ( " and s.shippingGroupCode in (:shippingGroupCode) " ) ;
hql . append ( " ORDER BY sd.id desc" ) ;
return entityManager . createQuery ( hql . toString ( ) , String . class )
. setParameter ( "organizeCode" , organizeCode )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , status )
. setParameter ( "shippingGroupCode" , shippingGroupCodes )
. setMaxResults ( 1 )
. getSingleResult ( ) ;
try {
return entityManager . createQuery ( hql . toString ( ) , String . class )
. setParameter ( "organizeCode" , organizeCode )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , status )
. setParameter ( "shippingGroupCode" , shippingGroupCodes )
. setMaxResults ( 1 )
. getSingleResult ( ) ;
} catch ( NoResultException e ) {
return "" ;
}
}
/ * *
@ -299,23 +305,38 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
* @return
* /
private String getMaxOffNumber ( String organizeCode , List < String > shippingGroupCodes ) {
String vinCode = getShippingVin ( organizeCode , shippingGroupCodes , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) ) ;
String vinCode = getMesShippingVin ( organizeCode , shippingGroupCodes , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) ) ;
if ( StringUtils . isEmpty ( vinCode ) ) {
return "" ;
}
StringBuilder offNumberHql = new StringBuilder ( ) ;
offNumberHql . append ( "select max(serialNumber) from " + MesCimSeresJisVinOverPoint . class . getName ( ) ) ;
offNumberHql . append ( " where organizeCode = :organizeCode and isDeleted = :isDeleted and isValid = :isValid " ) ;
offNumberHql . append ( " and vin = :vin " ) ;
return entityManager . createQuery ( offNumberHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , organizeCode )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "vin" , vinCode )
. getSingleResult ( ) ;
try {
return entityManager . createQuery ( offNumberHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , organizeCode )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "vin" , vinCode )
. getSingleResult ( ) ;
} catch ( NoResultException e ) {
return "" ;
}
}
/ * *
* 客 户 端 库 存
* 最 新 下 线 的 排 序 发 运 单 客 户 流 水 号 ( SERIAL_NUMBER ) - 赛 力 斯 上 线 的 最 新 流 水 号 + 调 整 值 。
* @param cfg
* @param cfgDetail
* @return
* /
private List < String > getClientStockQty ( MesShippingKanbanCfg cfg , MesShippingKanbanCfgDetail cfgDetail ) {
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) ) {
values . add ( "0" ) ;
return values ;
}
@ -326,12 +347,15 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
onNumberHql . append ( "select max(serialNumber) from " + MesCimSeresJisVinOverPoint . class . getName ( ) ) ;
onNumberHql . append ( " where organizeCode = :organizeCode and isDeleted = :isDeleted and isValid = :isValid " ) ;
onNumberHql . append ( " and overPoint = :overPoint " ) ;
onNumber = entityManager . createQuery ( onNumberHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getOnlinePoint ( ) )
. getSingleResult ( ) ;
try {
onNumber = entityManager . createQuery ( onNumberHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getOnlinePoint ( ) )
. getSingleResult ( ) ;
} catch ( NoResultException ignored ) {
}
}
if ( StringUtils . isEmpty ( onNumber ) ) {
onNumber = "0" ;
@ -348,10 +372,18 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
return values ;
}
/ * *
* 待 发 运 数 量
* 排 序 单 装 箱 扫 描 流 水 号 - 发 运 扫 描 流 水 号 , 精 排 最 新 流 水 号 - 辊 道 线 下 件 流 水 号 ( cockpit )
* @param cfg
* @param cfgDetail
* @return
* /
private List < String > getWaitShippingQty ( MesShippingKanbanCfg cfg , MesShippingKanbanCfgDetail cfgDetail ) {
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) ) {
values . add ( "0" ) ;
return values ;
}
@ -363,12 +395,15 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
refinedPointHql . append ( "select max(serialNumber) from " + MesCimSeresJisVinOverPoint . class . getName ( ) ) ;
refinedPointHql . append ( " where organizeCode = :organizeCode and isDeleted = :isDeleted and isValid = :isValid " ) ;
refinedPointHql . append ( " and overPoint = :overPoint " ) ;
refinedPointNumber = entityManager . createQuery ( refinedPointHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getRefinedPoint ( ) )
. getSingleResult ( ) ;
try {
refinedPointNumber = entityManager . createQuery ( refinedPointHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getRefinedPoint ( ) )
. getSingleResult ( ) ;
} catch ( NoResultException ignored ) {
}
}
if ( StringUtils . isEmpty ( refinedPointNumber ) ) {
refinedPointNumber = "0" ;
@ -398,7 +433,10 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
Map < String , String > shippingGroupCount = new HashMap < > ( ) ;
if ( ! CollectionUtils . isEmpty ( ddd ) ) {
for ( Map dd : ddd ) {
shippingGroupCount . put ( dd . get ( "shippingGroupCode" ) . toString ( ) , dd . get ( "COUNT" ) . toString ( ) ) ;
Object count = dd . get ( "COUNT" ) ;
if ( count ! = null ) {
shippingGroupCount . put ( dd . get ( "shippingGroupCode" ) . toString ( ) , count . toString ( ) ) ;
}
}
}
for ( String shippingGroupCode : strShippingGroupList ) {
@ -412,6 +450,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) ) {
values . add ( "0" ) ;
return values ;
}
@ -423,12 +462,15 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
refinedPointHql . append ( "select max(serialNumber) from " + MesCimSeresJisVinOverPoint . class . getName ( ) ) ;
refinedPointHql . append ( " where organizeCode = :organizeCode and isDeleted = :isDeleted and isValid = :isValid " ) ;
refinedPointHql . append ( " and overPoint = :overPoint " ) ;
refinedPointNumber = entityManager . createQuery ( refinedPointHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getRefinedPoint ( ) )
. getSingleResult ( ) ;
try {
refinedPointNumber = entityManager . createQuery ( refinedPointHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getRefinedPoint ( ) )
. getSingleResult ( ) ;
} catch ( NoResultException ignored ) {
}
}
if ( StringUtils . isEmpty ( refinedPointNumber ) ) {
refinedPointNumber = "0" ;
@ -450,6 +492,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 待 生 产 / 装 箱 数 量
* 精 排 最 新 流 水 号 - 排 序 单 装 箱 扫 描 流 水 号
* @param cfg
* @param cfgDetail
* @return
@ -458,6 +501,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) ) {
values . add ( "0" ) ;
return values ;
}
@ -471,12 +515,15 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
refinedPointHql . append ( "select max(serialNumber) from " + MesCimSeresJisVinOverPoint . class . getName ( ) ) ;
refinedPointHql . append ( " where organizeCode = :organizeCode and isDeleted = :isDeleted and isValid = :isValid " ) ;
refinedPointHql . append ( " and overPoint = :overPoint " ) ;
refinedPointNumber = entityManager . createQuery ( refinedPointHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getRefinedPoint ( ) )
. getSingleResult ( ) ;
try {
refinedPointNumber = entityManager . createQuery ( refinedPointHql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "overPoint" , cfg . getRefinedPoint ( ) )
. getSingleResult ( ) ;
} catch ( NoResultException ignored ) {
}
}
if ( StringUtils . isEmpty ( refinedPointNumber ) ) {
refinedPointNumber = "0" ;
@ -506,7 +553,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
}
for ( String shippingGroupCode : strShippingGroupList ) {
if ( shippingGroupCount . containsKey ( shippingGroupCode ) ) {
values . add ( Integer. parseInt ( refinedPointNumber ) - Integer . parseInt ( shippingGroupCount . get ( shippingGroupCode ) ) + "" ) ;
values . add ( Long. parseLong ( refinedPointNumber ) - Long . parseLong ( shippingGroupCount . get ( shippingGroupCode ) ) + "" ) ;
} else {
values . add ( "0" ) ;
}
@ -517,6 +564,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 距 离 上 一 次 发 运 时 间 ( Min )
* 当 前 时 间 - 最 近 一 次 发 运 扫 描 时 间
* @param cfg
* @param cfgDetail
* @return
@ -534,13 +582,18 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
hql . append ( " from MesShippingOrderManagement s inner join MesShippingOrderManagementDetail sd on s.id = sd.pid and sd.organizeCode = :organizeCode and sd.isDeleted=:isDeleted and sd.isValid=:isValid " ) ;
hql . append ( " and s.status in (:status) " ) ;
hql . append ( " and s.shippingGroupCode in (:shippingGroupCode) " ) ;
String strScanEndTime = entityManager . createQuery ( hql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getSingleResult ( ) ;
String strScanEndTime = "" ;
try {
strScanEndTime = entityManager . createQuery ( hql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getSingleResult ( ) ;
} catch ( NoResultException ignored ) {
}
if ( ! StringUtils . isEmpty ( strScanEndTime ) ) {
Date scanEndTime = DateUtil . parse ( strScanEndTime ) ;
values . add ( DateUtil . formatDate ( DateUtil . SHORT_FORMAT_HOUR , scanEndTime ) ) ;
@ -556,7 +609,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . LOADING_ORDER_STATUS. LOADED . getValue ( ) , MesExtEnumUtil . LOADING_ORDER_STATUS . SHIPPING . getValue ( ) ) )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . MES_LOADING_STATUS. PUBLISH . getValue ( ) , MesExtEnumUtil . MES_LOADING_STATUS . SCANNED . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getResultList ( ) ;
Map < String , String > shippingGroupCount = new HashMap < > ( ) ;
@ -599,13 +652,17 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
hql . append ( " from MesShippingOrderManagement s inner join MesShippingOrderManagementDetail sd on s.id = sd.pid and sd.organizeCode = :organizeCode and sd.isDeleted=:isDeleted and sd.isValid=:isValid " ) ;
hql . append ( " and s.status in (:status) " ) ;
hql . append ( " and s.shippingGroupCode in (:shippingGroupCode) " ) ;
String strScanEndTime = entityManager . createQuery ( hql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getSingleResult ( ) ;
String strScanEndTime = "" ;
try {
strScanEndTime = entityManager . createQuery ( hql . toString ( ) , String . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getSingleResult ( ) ;
} catch ( NoResultException ignored ) {
}
if ( ! StringUtils . isEmpty ( strScanEndTime ) ) {
Date scanEndTime = DateUtil . parse ( strScanEndTime ) ;
values . add ( DateUtil . formatDate ( DateUtil . SHORT_FORMAT_HOUR , scanEndTime ) ) ;
@ -618,6 +675,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 下 一 车 最 晚 发 运 时 间
* 当 前 时 间 + 客 户 端 库 存 / 客 户 JPH - 在 途 时 间
* @param cfg
* @param cfgDetail
* @return
@ -653,15 +711,17 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 三 级 停 线 预 警 ( Min )
* 当 前 时 间 + 客 户 端 库 存 / 客 户 JPH - 在 途 时 间
* @param cfg
* @param cfgDetail
* @return
* /
private List < String > getTreeStopWarning ( MesShippingKanbanCfg cfg , MesShippingKanbanCfgDetail cfgDetail ) {
List < String > values = new ArrayList < > ( ) ;
//获取 客户端库存
//获取 下一车最晚发运时间
List < String > nextShippingTimeValue = getNextShippingTime ( cfg , cfgDetail ) ;
if ( StringUtils . isEmpty ( nextShippingTimeValue ) ) {
values . add ( "0" ) ;
return values ;
}
Date nowTime = DateUtil . parse ( DateUtil . formatDate ( DateUtil . BASE_FORMAT3 , DateUtil . now ( ) ) , DateUtil . BASE_FORMAT3 ) ;
@ -671,10 +731,17 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
return values ;
}
/ * *
* 最 近 发 运 VIN / 流 水 号 , 客 户 排 序 信 息 序 号 , 截 取 后 6 位
* @param cfg
* @param cfgDetail
* @return
* /
private List < String > getShippingVin ( MesShippingKanbanCfg cfg , MesShippingKanbanCfgDetail cfgDetail ) {
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) ) {
values . add ( "0" ) ;
return values ;
}
@ -685,13 +752,18 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
hql . append ( " and s.status in (:status) " ) ;
hql . append ( " and s.shippingGroupCode in (:shippingGroupCode) " ) ;
hql . append ( " ORDER BY sd.id DESC" ) ;
Long custInfoSeq = entityManager . createQuery ( hql . toString ( ) , Long . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getSingleResult ( ) ;
Long custInfoSeq = null ;
try {
custInfoSeq = entityManager . createQuery ( hql . toString ( ) , Long . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. setMaxResults ( 1 )
. getSingleResult ( ) ;
} catch ( NoResultException e ) {
}
String strCustInfoSeq = custInfoSeq ! = null ? Long . toString ( custInfoSeq ) : "" ;
if ( strCustInfoSeq . length ( ) > = 6 ) {
values . add ( strCustInfoSeq . substring ( strCustInfoSeq . length ( ) - 6 ) ) ;
@ -709,7 +781,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . LOADING_ORDER_STATUS. LOADED . getValue ( ) , MesExtEnumUtil . LOADING_ORDER_STATUS . SHIPPING . getValue ( ) ) )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . MES_LOADING_STATUS. PUBLISH . getValue ( ) , MesExtEnumUtil . MES_LOADING_STATUS . SCANNED . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getResultList ( ) ;
@ -741,11 +813,18 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
return values ;
}
/ * *
* 最 近 发 运 VIN / 流 水 号 , 客 户 排 序 信 息 序 号 , 截 取 后 6 位
* @param cfg
* @param cfgDetail
* @return
* /
private List < String > getCPShippingVin ( MesShippingKanbanCfg cfg , MesShippingKanbanCfgDetail cfgDetail ) {
List < String > values = new ArrayList < > ( ) ;
DdlPackBean packBean = DdlPackBean . getDdlPackBean ( cfg . getOrganizeCode ( ) ) ;
List < MesPartShippingGroup > shippingGroups = partShippingGroupRDao . findByHqlWhere ( packBean ) ;
if ( CollectionUtils . isEmpty ( shippingGroups ) ) {
values . add ( "0" ) ;
return values ;
}
@ -758,13 +837,19 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
hql . append ( " and s.status in (:status) " ) ;
hql . append ( " and s.shippingGroupCode in (:shippingGroupCode) " ) ;
hql . append ( " ORDER BY sd.id DESC" ) ;
Long custInfoSeq = entityManager . createQuery ( hql . toString ( ) , Long . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. getSingleResult ( ) ;
Long custInfoSeq = null ;
try {
custInfoSeq = entityManager . createQuery ( hql . toString ( ) , Long . class )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , Arrays . asList ( MesExtEnumUtil . SHIPPING_ORDER_STATUS . SHIPPED . getValue ( ) , MesExtEnumUtil . SHIPPING_ORDER_STATUS . LOADING . getValue ( ) ) )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
. setMaxResults ( 1 )
. getSingleResult ( ) ;
} catch ( NoResultException e ) {
}
String strCustInfoSeq = custInfoSeq ! = null ? Long . toString ( custInfoSeq ) : "" ;
if ( strCustInfoSeq . length ( ) > = 6 ) {
values . add ( strCustInfoSeq . substring ( strCustInfoSeq . length ( ) - 6 ) ) ;
@ -778,7 +863,9 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
}
/ * *
* 当 天 上 线 数
* 当 天 上 线 数 , 要 设 置 客 户 开 班 时 间 、 信 息 点
* 基 于 信 息 点 到 当 前 时 间 过 点 数 量 。 按 天 显 示 。
* 当 天 上 线 数 / 当 班 上 线 数
* @param cfg
* @param cfgDetail
* @return
@ -786,6 +873,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
private List < String > getTodayOnline ( MesShippingKanbanCfg cfg , MesShippingKanbanCfgDetail cfgDetail ) {
List < String > values = new ArrayList < > ( ) ;
if ( StringUtils . isEmpty ( cfg . getCustStartShift ( ) ) | | StringUtils . isEmpty ( cfg . getOnlinePoint ( ) ) ) {
values . add ( "0" ) ;
return values ;
}
@ -823,6 +911,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 当 天 发 运 数
* 设 置 内 部 开 班 时 间 , 显 示 已 发 运 数 、 已 装 车 数 , 发 运 单 状 态 为 已 发 运 及 已 装 车 。
* @param cfg
* @param cfgDetail
* @return
@ -831,6 +920,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) | | StringUtils . isEmpty ( cfg . getInterStartShift ( ) ) ) {
values . add ( "0" ) ;
return values ;
}
@ -882,6 +972,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 当 天 装 车 数
* 设 置 内 部 开 班 时 间 , 显 示 已 装 车 数 , 装 车 单 状 态 为 已 扫 描 。
* @param cfg
* @param cfgDetail
* @return
@ -890,6 +981,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) | | StringUtils . isEmpty ( cfg . getInterStartShift ( ) ) ) {
values . add ( "0" ) ;
return values ;
}
@ -919,7 +1011,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "status" , MesExtEnumUtil . LOADING_ORDER_STATUS. SHIPPING . getValue ( ) )
. setParameter ( "status" , MesExtEnumUtil . MES_LOADING_STATUS. SCANNED . getValue ( ) )
. setParameter ( "startDateTime" , startDateTime )
. setParameter ( "endDateTime" , endDateTime )
. setParameter ( "shippingGroupCode" , strShippingGroupList )
@ -942,6 +1034,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 客 户 端 JPH
* 上 线 点 , 当 前 时 间 往 前 一 小 时 的 过 点 总 数 维 护 默 认 值 , 当 数 值 为 0 时 , 显 示 为 默 认 值
* @param cfg
* @param cfgDetail
* @return
@ -950,6 +1043,7 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) ) {
values . add ( "0" ) ;
return values ;
}
@ -980,19 +1074,53 @@ public class MesShippingKanbanCfgServiceImpl implements IMesShippingKanbanCfgSer
/ * *
* 生 产 JPH
* 当 前 时 间 往 前 一 小 时 的 完 成 数 / 下 线 数
* @param cfg
* @param cfgDetail
* @return
* /
private List < String > getProductJPH ( MesShippingKanbanCfg cfg , MesShippingKanbanCfgDetail cfgDetail ) {
List < String > values = new ArrayList < > ( ) ;
List < String > strShippingGroupList = Arrays . asList ( cfg . getShippingGroupCode ( ) . split ( "," ) ) ;
if ( CollectionUtils . isEmpty ( strShippingGroupList ) ) {
List < MesPartShippingGroup > partShippingGroups = getShippingGroups ( cfg ) ;
if ( CollectionUtils . isEmpty ( partShippingGroups ) ) {
values . add ( "0" ) ;
return values ;
}
Date nowTime = DateUtil . now ( ) ;
Date prevHourTime = DateUtil . addMinutes ( nowTime , - 60 ) ;
StringBuilder hql = new StringBuilder ( ) ;
hql . append ( "select new map(workCenterCode, count(1) as totalCount) from " + MesProductionRecord . class . getName ( ) ) ;
hql . append ( " where organizeCode = :organizeCode and isDeleted = :isDeleted and isValid = :isValid " ) ;
hql . append ( " and createDatetime BETWEEN :startDateTime AND :endDateTime " ) ;
hql . append ( " group by workCenterCode" ) ;
List < Map > ddd = entityManager . createQuery ( hql . toString ( ) )
. setParameter ( "organizeCode" , cfg . getOrganizeCode ( ) )
. setParameter ( "isValid" , CommonEnumUtil . VALID )
. setParameter ( "isDeleted" , CommonEnumUtil . FALSE )
. setParameter ( "startDateTime" , DateUtil . formatDate ( nowTime ) )
. setParameter ( "endDateTime" , DateUtil . formatDate ( prevHourTime ) )
. getResultList ( ) ;
Map < String , String > shippingGroupCount = new HashMap < > ( ) ;
if ( ! CollectionUtils . isEmpty ( ddd ) ) {
for ( Map dd : ddd ) {
Object totalCount = dd . get ( "totalCount" ) ;
if ( totalCount ! = null ) {
shippingGroupCount . put ( dd . get ( "workCenterCode" ) . toString ( ) , totalCount . toString ( ) ) ;
}
}
}
for ( MesPartShippingGroup shippingGroup : partShippingGroups ) {
if ( StringUtils . isEmpty ( shippingGroup . getCarrierCode ( ) ) ) {
continue ;
}
values . add ( shippingGroupCount . getOrDefault ( shippingGroup . getCarrierCode ( ) , "0" ) ) ;
}
if ( values . isEmpty ( ) ) {
values . add ( "0" ) ;
}
return values ;
}
}