ccsc汇总job 规则随机逻辑修改

tags/yfai-mes-ext-v1.0
gsz 10 months ago
parent 86c9ec3ecf
commit bfafa4206c

@ -54,7 +54,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
mesCcscTask.setTestType(testType); mesCcscTask.setTestType(testType);
mesCcscTask.setAssemblyLine(mesWorkOrder.getWorkCenterCode()); mesCcscTask.setAssemblyLine(mesWorkOrder.getWorkCenterCode());
mesCcscTask.setRule(rule); mesCcscTask.setRule(rule);
mesCcscTask.setQty((double)qtyRule); mesCcscTask.setQty((double) qtyRule);
ConvertBean.serviceModelInitialize(mesCcscTask, mesWorkOrder.getModifyUser()); ConvertBean.serviceModelInitialize(mesCcscTask, mesWorkOrder.getModifyUser());
return baseRDao.insert(mesCcscTask); return baseRDao.insert(mesCcscTask);
@ -64,7 +64,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
@Override @Override
public void doCcscTaskByMesWorkOrder(String organizeCode, List<MesWorkOrder> mesWorkOrderList) { public void doCcscTaskByMesWorkOrder(String organizeCode, List<MesWorkOrder> mesWorkOrderList) {
//查ccsc规则表 //查ccsc规则表
LOGGER.info("-------- doCcscTaskByMesWorkOrder---{}",organizeCode); LOGGER.info("-------- doCcscTaskByMesWorkOrder---{}", organizeCode);
DdlPackBean ddlPackBeanRule = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean ddlPackBeanRule = DdlPackBean.getDdlPackBean(organizeCode);
List<MesCcscRule> ccscRuleList = ccscRuleRDao.findByHqlWhere(ddlPackBeanRule); List<MesCcscRule> ccscRuleList = ccscRuleRDao.findByHqlWhere(ddlPackBeanRule);
Map<String, List<MesCcscRule>> ccscRulePartMap = ccscRuleList.stream().collect(Collectors.groupingBy(MesCcscRule::getPartNo)); Map<String, List<MesCcscRule>> ccscRulePartMap = ccscRuleList.stream().collect(Collectors.groupingBy(MesCcscRule::getPartNo));
@ -80,7 +80,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
if (CollectionUtils.isEmpty(ccscRulePartMap.get(mesWorkOrder.getPartNo()))) { if (CollectionUtils.isEmpty(ccscRulePartMap.get(mesWorkOrder.getPartNo()))) {
continue; 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(); MesCcscRule ccscRule = ccscRulePartMap.get(mesWorkOrder.getPartNo()).iterator().next();
if (nowTime.compareTo(ccscRule.getNextExeTime()) > 0) { if (nowTime.compareTo(ccscRule.getNextExeTime()) > 0) {
@ -89,8 +89,8 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
Integer qtyRule = ccscRule.getQty(); Integer qtyRule = ccscRule.getQty();
String testType = ccscRule.getTestType(); String testType = ccscRule.getTestType();
Integer ccscRuleQty = 1; Integer ccscRuleQty = 1;
LOGGER.info("-------- doCcscTaskByMesWorkOrder--83-{}",rule); LOGGER.info("-------- doCcscTaskByMesWorkOrder--83-{}", rule);
List<MesWorkOrder> mesWorkOrderToTask=new ArrayList<>(); List<MesWorkOrder> mesWorkOrderToTask = new ArrayList<>();
//首件取第一个工单?还是全部工单都同步,取工单明细条码的首件条码? //首件取第一个工单?还是全部工单都同步,取工单明细条码的首件条码?
switch (rule) { switch (rule) {
case 1: case 1:
@ -106,11 +106,16 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
if (!mesWorkOrderToTask.contains(next)) { if (!mesWorkOrderToTask.contains(next)) {
mesWorkOrderToTask.add(next); mesWorkOrderToTask.add(next);
} }
ccscRuleQty=2; ccscRuleQty = 2;
break; break;
case 4://随机 todo 规则应该是每生产qtyRule件此产品触发一次检测任务任务中待检测的数量为1 case 4://随机 todo 规则应该是每生产qtyRule件此产品触发一次检测任务任务中待检测的数量为1
if(mesWorkOrders.size()/qtyRule>0){ double sum = mesWorkOrders.stream().mapToDouble(MesWorkOrder::getQty).sum();
mesWorkOrderToTask.add(mesWorkOrders.stream().sorted(Comparator.comparing(MesWorkOrder::getStartTime).reversed()).collect(Collectors.toList()).iterator().next()); 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; break;
default: default:
@ -123,7 +128,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkOrderNo(), "workOrderNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkOrderNo(), "workOrderNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean);
List<MesCcscTask> mesCcscTaskList = baseRDao.findByHqlWhere(ddlPackBean); List<MesCcscTask> mesCcscTaskList = baseRDao.findByHqlWhere(ddlPackBean);
LOGGER.info("-------- doCcscTaskByMesWorkOrder--120-mesCcscTaskList{}",mesCcscTaskList); LOGGER.info("-------- doCcscTaskByMesWorkOrder--120-mesCcscTaskList{}", mesCcscTaskList);
if (CollectionUtils.isEmpty(mesCcscTaskList)) { if (CollectionUtils.isEmpty(mesCcscTaskList)) {
//全部新增task表 //全部新增task表
for (MesWorkOrder workOrder : mesWorkOrderToTask) { for (MesWorkOrder workOrder : mesWorkOrderToTask) {
@ -140,10 +145,10 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
.build(); .build();
} }
LOGGER.info("-------- doCcscTaskByMesWorkOrder--129-insert"); 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"); LOGGER.info("-------- doCcscTaskByMesWorkOrder--133-ccscRuleRDao.save");
//按照班次更新下次执行时间 //按照班次更新下次执行时间
ccscRule.setNextExeTime(CronUtil.getRecentTriggerTime(ccscRule.getCron())); ccscRule.setNextExeTime(CronUtil.getRecentTriggerTime(ccscRule.getCron()));

Loading…
Cancel
Save