|
|
|
@ -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()));
|
|
|
|
|