|
|
|
@ -12,8 +12,9 @@ import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.util.StringUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesCcscRule;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesCcscTask;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesCcscRuleRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesCcscTaskRepository;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
|
|
|
@ -66,6 +67,7 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
|
|
|
|
|
//查ccsc规则表
|
|
|
|
|
LOGGER.info("-------- doCcscTaskByMesWorkOrder---{}",organizeCode);
|
|
|
|
|
DdlPackBean ddlPackBeanRule = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).collect(Collectors.toList()), "partNo",ddlPackBeanRule);
|
|
|
|
|
List<MesCcscRule> ccscRuleList = ccscRuleRDao.findByHqlWhere(ddlPackBeanRule);
|
|
|
|
|
Map<String, List<MesCcscRule>> ccscRulePartMap = ccscRuleList.stream().collect(Collectors.groupingBy(MesCcscRule::getPartNo));
|
|
|
|
|
Map<String, List<MesWorkOrder>> workOrderPartMap = mesWorkOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getPartNo));
|
|
|
|
@ -155,4 +157,50 @@ public class MesCcscTaskServiceImpl extends BaseMesService<MesCcscTask> implemen
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void insertMesCcscTask(String organizeCode, List<MesWorkOrder> mesWorkOrderList) {
|
|
|
|
|
if (CollectionUtils.isEmpty(mesWorkOrderList)) return;
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).collect(Collectors.toList()), "partNo", packBean);
|
|
|
|
|
List<MesCcscRule> ccscRuleList = ccscRuleRDao.findByHqlWhere(packBean);
|
|
|
|
|
if (CollectionUtils.isEmpty(ccscRuleList)) return;
|
|
|
|
|
Map<String, List<MesCcscRule>> ccscRulePartMap = ccscRuleList.stream().collect(Collectors.groupingBy(MesCcscRule::getPartNo));
|
|
|
|
|
//根据物料对工单表分组
|
|
|
|
|
Map<String, List<MesWorkOrder>> workOrderPartMap = mesWorkOrderList.stream().collect(Collectors.groupingBy(MesWorkOrder::getPartNo));
|
|
|
|
|
for (Map.Entry<String, List<MesWorkOrder>> stringListEntry : workOrderPartMap.entrySet()) {
|
|
|
|
|
List<MesWorkOrder> mesWorkOrders = stringListEntry.getValue();
|
|
|
|
|
MesWorkOrder mesWorkOrder = mesWorkOrders.iterator().next();
|
|
|
|
|
if (CollectionUtils.isEmpty(ccscRulePartMap.get(mesWorkOrder.getPartNo()))) continue;
|
|
|
|
|
MesCcscRule ccscRule = ccscRulePartMap.get(mesWorkOrder.getPartNo()).iterator().next();
|
|
|
|
|
for (MesWorkOrder workOrder : mesWorkOrders) {
|
|
|
|
|
saveCcscTask(organizeCode, workOrder, ccscRule);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void saveCcscTask(String organizeCode, MesWorkOrder workOrder, MesCcscRule ccscRule) {
|
|
|
|
|
String orderNo = "1_" + workOrder.getWorkOrderNo();
|
|
|
|
|
int ccscRuleQty = 1;
|
|
|
|
|
//新增质量检验任务 MesCcscTask
|
|
|
|
|
MesCcscTask mesCcscTask = getMesCcscTask(organizeCode, workOrder);
|
|
|
|
|
if (!Objects.isNull(mesCcscTask)) {
|
|
|
|
|
ccscRuleQty = mesCcscTask.getQty().intValue();
|
|
|
|
|
if (mesCcscTask.getTaskNo().startsWith(MesCommonConstant.CCSC_RETEST_NO.substring(0,6))) {
|
|
|
|
|
String[] split = mesCcscTask.getTaskNo().split("_");
|
|
|
|
|
orderNo = (Integer.parseInt(split[1]) + 1)+ "_" + split[2];
|
|
|
|
|
} else {
|
|
|
|
|
orderNo = "1_" + mesCcscTask.getTaskNo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
insert(workOrder, ccscRule.getTestType(), String.format(MesCommonConstant.CCSC_RETEST_NO, orderNo), ccscRule.getFrequency(), ccscRule.getRule(), ccscRuleQty);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesCcscTask getMesCcscTask(String organizeCode, MesWorkOrder mesWorkOrder) {
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getWorkOrderNo(), "workOrderNo", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesWorkOrder.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getOrderBy(null, null, ddlPackBean);
|
|
|
|
|
return baseRDao.getByProperty(ddlPackBean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|