From bfafa4206cf5e043226f8a0b1e99b3eb6330bf7c Mon Sep 17 00:00:00 2001 From: gsz Date: Thu, 25 Jul 2024 18:51:09 +0800 Subject: [PATCH] =?UTF-8?q?ccsc=E6=B1=87=E6=80=BBjob=20=E8=A7=84=E5=88=99?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesCcscTaskServiceImpl.java | 29 +++++++++++++--------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCcscTaskServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCcscTaskServiceImpl.java index 6793c46..3d2095e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCcscTaskServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCcscTaskServiceImpl.java @@ -47,14 +47,14 @@ public class MesCcscTaskServiceImpl extends BaseMesService implemen } @Override - public MesCcscTask insert(MesWorkOrder mesWorkOrder, String testType, String orderNo, Integer frequency, Integer rule, Integer qtyRule) { + public MesCcscTask insert(MesWorkOrder mesWorkOrder, String testType, String orderNo, Integer frequency, Integer rule, Integer qtyRule) { MesCcscTask mesCcscTask = new MesCcscTask(mesWorkOrder); mesCcscTask.setTaskNo(orderNo); mesCcscTask.setFrequency(frequency); mesCcscTask.setTestType(testType); mesCcscTask.setAssemblyLine(mesWorkOrder.getWorkCenterCode()); mesCcscTask.setRule(rule); - mesCcscTask.setQty((double)qtyRule); + mesCcscTask.setQty((double) qtyRule); ConvertBean.serviceModelInitialize(mesCcscTask, mesWorkOrder.getModifyUser()); return baseRDao.insert(mesCcscTask); @@ -64,7 +64,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService implemen @Override public void doCcscTaskByMesWorkOrder(String organizeCode, List mesWorkOrderList) { //查ccsc规则表 - LOGGER.info("-------- doCcscTaskByMesWorkOrder---{}",organizeCode); + LOGGER.info("-------- doCcscTaskByMesWorkOrder---{}", organizeCode); DdlPackBean ddlPackBeanRule = DdlPackBean.getDdlPackBean(organizeCode); List ccscRuleList = ccscRuleRDao.findByHqlWhere(ddlPackBeanRule); Map> ccscRulePartMap = ccscRuleList.stream().collect(Collectors.groupingBy(MesCcscRule::getPartNo)); @@ -80,7 +80,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService implemen if (CollectionUtils.isEmpty(ccscRulePartMap.get(mesWorkOrder.getPartNo()))) { continue; } - LOGGER.info("-------- doCcscTaskByMesWorkOrder--80-{}",ccscRulePartMap.get(mesWorkOrder.getPartNo())); + LOGGER.info("-------- doCcscTaskByMesWorkOrder--80-{}", ccscRulePartMap.get(mesWorkOrder.getPartNo())); MesCcscRule ccscRule = ccscRulePartMap.get(mesWorkOrder.getPartNo()).iterator().next(); if (nowTime.compareTo(ccscRule.getNextExeTime()) > 0) { @@ -89,8 +89,8 @@ public class MesCcscTaskServiceImpl extends BaseMesService implemen Integer qtyRule = ccscRule.getQty(); String testType = ccscRule.getTestType(); Integer ccscRuleQty = 1; - LOGGER.info("-------- doCcscTaskByMesWorkOrder--83-{}",rule); - List mesWorkOrderToTask=new ArrayList<>(); + LOGGER.info("-------- doCcscTaskByMesWorkOrder--83-{}", rule); + List mesWorkOrderToTask = new ArrayList<>(); //首件取第一个工单?还是全部工单都同步,取工单明细条码的首件条码? switch (rule) { case 1: @@ -106,11 +106,16 @@ public class MesCcscTaskServiceImpl extends BaseMesService implemen if (!mesWorkOrderToTask.contains(next)) { mesWorkOrderToTask.add(next); } - ccscRuleQty=2; + ccscRuleQty = 2; break; case 4://随机 todo 规则应该是每生产qtyRule件此产品,触发一次检测任务,任务中待检测的数量为1 - if(mesWorkOrders.size()/qtyRule>0){ - mesWorkOrderToTask.add(mesWorkOrders.stream().sorted(Comparator.comparing(MesWorkOrder::getStartTime).reversed()).collect(Collectors.toList()).iterator().next()); + double sum = mesWorkOrders.stream().mapToDouble(MesWorkOrder::getQty).sum(); + if (sum / qtyRule > 0) { + if (sum / qtyRule > mesWorkOrders.size()) { + mesWorkOrderToTask.addAll(mesWorkOrders.stream().sorted(Comparator.comparing(MesWorkOrder::getStartTime).reversed()).collect(Collectors.toList())); + } else { + mesWorkOrderToTask.addAll(mesWorkOrders.stream().sorted(Comparator.comparing(MesWorkOrder::getStartTime).reversed()).collect(Collectors.toList()).subList(0, (int) (sum / qtyRule))); + } } break; default: @@ -123,7 +128,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService implemen DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkOrderNo(), "workOrderNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean); List mesCcscTaskList = baseRDao.findByHqlWhere(ddlPackBean); - LOGGER.info("-------- doCcscTaskByMesWorkOrder--120-mesCcscTaskList{}",mesCcscTaskList); + LOGGER.info("-------- doCcscTaskByMesWorkOrder--120-mesCcscTaskList{}", mesCcscTaskList); if (CollectionUtils.isEmpty(mesCcscTaskList)) { //全部新增task表 for (MesWorkOrder workOrder : mesWorkOrderToTask) { @@ -140,10 +145,10 @@ public class MesCcscTaskServiceImpl extends BaseMesService implemen .build(); } LOGGER.info("-------- doCcscTaskByMesWorkOrder--129-insert"); - insert(workOrder,testType, orderNo, frequency, rule,ccscRuleQty); + insert(workOrder, testType, orderNo, frequency, rule, ccscRuleQty); } } - if(!CollectionUtils.isEmpty(mesWorkOrderToTask)){ + if (!CollectionUtils.isEmpty(mesWorkOrderToTask)) { LOGGER.info("-------- doCcscTaskByMesWorkOrder--133-ccscRuleRDao.save"); //按照班次更新下次执行时间 ccscRule.setNextExeTime(CronUtil.getRecentTriggerTime(ccscRule.getCron()));