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

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

@ -47,14 +47,14 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> 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<MesCcscTask> implemen
@Override
public void doCcscTaskByMesWorkOrder(String organizeCode, List<MesWorkOrder> mesWorkOrderList) {
//查ccsc规则表
LOGGER.info("-------- doCcscTaskByMesWorkOrder---{}",organizeCode);
LOGGER.info("-------- doCcscTaskByMesWorkOrder---{}", organizeCode);
DdlPackBean ddlPackBeanRule = DdlPackBean.getDdlPackBean(organizeCode);
List<MesCcscRule> ccscRuleList = ccscRuleRDao.findByHqlWhere(ddlPackBeanRule);
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()))) {
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<MesCcscTask> implemen
Integer qtyRule = ccscRule.getQty();
String testType = ccscRule.getTestType();
Integer ccscRuleQty = 1;
LOGGER.info("-------- doCcscTaskByMesWorkOrder--83-{}",rule);
List<MesWorkOrder> mesWorkOrderToTask=new ArrayList<>();
LOGGER.info("-------- doCcscTaskByMesWorkOrder--83-{}", rule);
List<MesWorkOrder> mesWorkOrderToTask = new ArrayList<>();
//首件取第一个工单?还是全部工单都同步,取工单明细条码的首件条码?
switch (rule) {
case 1:
@ -106,11 +106,16 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> 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<MesCcscTask> implemen
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkOrderNo(), "workOrderNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean);
List<MesCcscTask> 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<MesCcscTask> 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()));

Loading…
Cancel
Save