diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java index 65dc524..eafd358 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java @@ -13,5 +13,5 @@ import java.util.List; **/ public interface IMesWorkOrderDao { - List sumMesWorkOrderQtyToSap(String organizeCode, List statusList,String lastSendToSapTime); + List sumMesWorkOrderQtyToSap(String organizeCode, List statusList,List partNoList); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java index 5a1f70f..5845d92 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java @@ -31,18 +31,18 @@ public class MesWorkOrderDaoImpl implements IMesWorkOrderDao { private EntityManager entityManager; @Override - public List sumMesWorkOrderQtyToSap(String organizeCode, List statusList,String lastSendToSapTime) { - StringBuffer hql = new StringBuffer("select organize_Code as organizeCode,part_No as partNo, plan_Start_Time as planStartTime, product_Version as productVersion, " + + public List sumMesWorkOrderQtyToSap(String organizeCode, List statusList,List partNoList) { + StringBuffer hql = new StringBuffer("select organize_Code as organizeCode,part_No as partNo, date_format(plan_start_time, '%Y-%m-%d' ) as planStartTime, product_Version as productVersion, " + " sum( CASE WHEN work_Order_Status = 40 THEN complete_Qty ELSE qty END ) AS qty " + " from Mes_Work_Order where is_Deleted=:isDeleted and is_Valid = :isValid and organize_Code = :organizeCode " + - " and work_order_type = 20 and order_flag !='P' and modify_date_time >= :modifyDatetime "+ - " and work_Order_Status not in(:statusList) group by organize_code,part_No, date_format( plan_Start_Time, '%Y-%m-%d' ), product_Version "); + " and work_order_type = 20 and order_flag !='P' and part_no in (:partNoList) "+ + " and work_Order_Status not in(:statusList) group by organize_code,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); - query.setParameter("modifyDatetime", lastSendToSapTime); + query.setParameter("partNoList", partNoList); query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List> hashMaps = query.getResultList(); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 7c951c6..c47d6fa 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao; import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt; import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.apiservice.util.DateUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -39,6 +40,7 @@ import org.springframework.util.StringUtils; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; @Service @Slf4j @@ -1271,8 +1273,17 @@ public class MesWorkOrderService extends BaseMesService implements List statusList = new ArrayList<>(); statusList.add(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); // statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(),MesExtConstWords.WORK_ORDER_TYPE,packBean); + DdlPreparedPack.getStringNoEqualPack(MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue(),"orderFlag",packBean); + DdlPreparedPack.getNotInPack(statusList, MesExtConstWords.WORK_ORDER_STATUS, packBean); + DdlPreparedPack.getStringBiggerPack(lastSendToSapTime,"modifyDatetime",packBean); + List mesWorkOrderList = mesWorkOrderRDao.findByHqlWhere(packBean); + if(CollectionUtils.isEmpty(mesWorkOrderList)) return null; + List partNoList = mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).filter(partNo -> !StringUtil.isEmptyAndNull(partNo)).distinct().collect(Collectors.toList()); + if(CollectionUtils.isEmpty(partNoList)) return null; //查询汇总工单数量 - return mesWorkOrderDao.sumMesWorkOrderQtyToSap(organizeCode, statusList,lastSendToSapTime); + return mesWorkOrderDao.sumMesWorkOrderQtyToSap(organizeCode, statusList,partNoList); } @Override @@ -1415,7 +1426,7 @@ public class MesWorkOrderService extends BaseMesService implements return mesWorkOrderList; } - + public List saveMesWorkOrderToWms(MesWorkOrder mesWorkOrder, List mesBomList) { List mesWorkOrderToWmsList = new ArrayList<>(); MesWorkOrderToWms mesWorkOrderToWms = null; @@ -1462,7 +1473,7 @@ public class MesWorkOrderService extends BaseMesService implements // } // mesProductOffLineService.insertBatch(mesProductOffLineList); - //保存数据 + //保存数据 List mesProductOffLineList = new ArrayList<>(); MesProductOffLine newMesProductOffLine; for (MesProductionRecord produceSn : mesProductionRecordList) {