计算用板量查询造型方法更改

This commit is contained in:
liuzhaotian
2025-03-27 09:29:12 +08:00
parent b2f5cdd75a
commit d9bd05a3e2
3 changed files with 46 additions and 28 deletions
@@ -139,6 +139,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
private PlanItemMapper planItemMapper;
private static final String FIELD_ORDER_ID = "orderId";
private static final String FIELD_PLATE_ID = "plateId";
private static final String FIELD_PLAN_ID = "planId";
private static final String FIELD_GOODS_ID = "goodsId";
private static final String FIELD_SORT = " order by createTime desc ";
@@ -520,8 +521,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
// 造型数据的尺寸长度
Integer orderModelSize = plateDOS.size();
List<Long> plateIdList = plateDOS.stream().map(PlateDetailRespVO::getPlateId).distinct().toList();
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument(FIELD_ORDER_ID, orderId, orderModelSize, OptimizePlanService.ORDER_PLATE_MODEL, OrderModelDO.class);
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument(FIELD_ORDER_ID,FIELD_PLATE_ID, orderId,plateIdList, orderModelSize, OptimizePlanService.ORDER_PLATE_MODEL, OrderModelDO.class);
AssertUtils.notEmpty(orderModelDOS,ORDER_PLATE_MODEL_DATE_ERROR);
@@ -611,7 +613,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
// 需要查询小板造型信息的板材ID
List<Long> plateIds = plateDetailRespVOS.stream().map(PlateDetailRespVO::getPlateId).toList();
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument("plateId", plateIds, orderModelSize, OptimizePlanService.ORDER_PLATE_MODEL, OrderModelDO.class);
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument(FIELD_PLATE_ID, plateIds, orderModelSize, OptimizePlanService.ORDER_PLATE_MODEL, OrderModelDO.class);
AssertUtils.notEmpty(orderModelDOS,ORDER_PLAN_PLATE_MODEL_DATE_ERROR);
@@ -698,7 +700,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
}
esUtils.deleteEsDocument(FIELD_PLAN_ID, FIELD_PROCESS_ID, planId, req.getProcessId(), ORDER_OPTIMIZE_PLATE_MODEL);
if(boardModelDO.getProcessId() == null) {
esUtils.deleteEsDocument(FIELD_PLAN_ID, FIELD_PROCESS_ID, planId, req.getProcessId(), ORDER_OPTIMIZE_PLATE_MODEL);
}
}else {
@@ -801,22 +805,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
// 如果方案组ID不相等,就删除旧的方案组信息,再保存新的加工方案组ID
if(!planDO.getProcessId().equals(processId)){
// validatePlanStatus(planDO,isLocks);
if(planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
throw exception(THIS_PLAN_PLATE_IS_CUT);
}
// todo 是否全部执行的判断,需要等前端完善加工方案那边的逻辑后,再判断
// Integer processSize = systemConfigApi.getProcessSizeByIds(Collections.singletonList(planDO.getProcessId())).getCheckedData();
//
// List<SaveProcessSchemeModelDO> processSchemeModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, processSize, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class);
//
// if(CollUtil.isNotEmpty(processSchemeModelDOS) && processSize == processSchemeModelDOS.size()){
// throw exception(THIS_PLAN_SCHEME_OPTIMIZE_SIZE_ERROR);
// }
planMapper.updateById(planDO.setProcessId(processId));
@@ -837,8 +830,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL,schemeModelDOS);
// esUtils.refresh(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
}
@@ -883,12 +874,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
planProcessSchemeList.setProcessSchemeList(schemeDTOList);
validatePlanExists(planId);
// 查询排单对应的方案组信息
// List<SaveProcessSchemeModelDO> saveProcessSchemeReqVOS = Optional.ofNullable(esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class)).orElse(new ArrayList<>());
List<SaveProcessSchemeModelDO> saveProcessSchemeReqVOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class);
@@ -913,12 +901,10 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
}
});
}
}
planProcessSchemeList.setSaveProcessSchemeReqVOS(saveProcessSchemeReqVOS);
@@ -1039,7 +1025,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
// 需要查询的小板造型信息的板材ID
List<Long> plateIds = plateDetailRespVOS.stream().map(PlateDetailRespVO::getPlateId).toList();
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument("plateId", plateIds, orderModelSize, OptimizePlanService.ORDER_PLATE_MODEL, OrderModelDO.class);
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument(FIELD_PLATE_ID, plateIds, orderModelSize, OptimizePlanService.ORDER_PLATE_MODEL, OrderModelDO.class);
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_MODEL_DATE_ERROR);
@@ -1131,7 +1117,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
if(CharSequenceUtil.isNotBlank(modelDataFilter)){
Map<Long, List<OrderPlateModel>> orderPlateModelMap = getOrderPlateModelList(conversion(orderIdLists.toString()), null, logicalOperator, modelDataFilter, pageReqVO,FIELD_ORDER_ID);
@@ -219,6 +219,39 @@ public class EsUtils {
}
public <T> List<T> getEsDocument(String filedName1,String filedName2, Long value1,List<Long> value2,Integer size, String index, Class<T> targetClass) {
List<FieldValue> fieldValues2 = value2.stream().map(FieldValue::of).toList();
SearchRequest.Builder builder = new SearchRequest.Builder();
builder.index(index);
builder.size(size);
builder.query(q->q.bool(b->b.filter(f->{
f.term(t->t.field(filedName1).value(value1));
f.terms(t->t.field(filedName2).terms(e->e.value(fieldValues2)));
return f;
})));
try {
SearchResponse<T> search = elasticsearchClient.search(builder.build(), targetClass);
List<Hit<T>> hits = search.hits().hits();
if (CollUtil.isNotEmpty(hits)) {
return hits.stream().map(Hit::source).toList();
}
return new ArrayList<>();
}catch (JsonpMappingException e){
log.error(e.getMessage());
throw new ServiceException(ORDER_DATA_ERROR);
}catch (IOException | ElasticsearchException e) {
log.error(e.getMessage());
throw new ServiceException(DATA_DATA_ERROR);
}
}
// ES 文档删除
public void deleteEsDocument(String filedName,Long value, String index) {