mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-13 05:12:07 +08:00
新增-每个排单都保存对应的方案组信息,增加修改排单方案组配置接口,创建组织复制系统配置信息,增加打印标签查询小板信息接口
This commit is contained in:
+25
@@ -196,6 +196,31 @@ public class OptimizePlanController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping("/newPlanPlate")
|
||||
@Operation(summary = "获取排单是否有新加板材")
|
||||
@Parameter(name = "planId", description = "排单ID", required = true)
|
||||
public CommonResult<Boolean> getNewPlanPlate(@Valid @RequestParam("planId") Long planId) {
|
||||
|
||||
return success(optimizePlanService.getNewPlanPlate(planId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PutMapping("/updateConfig")
|
||||
@Operation(summary = "修改排单对应的加工方案组的配置信息")
|
||||
public CommonResult<Boolean> updateProcessSchemeConfig(@RequestBody PlanSchemeConfigReqVO reqVO) {
|
||||
|
||||
optimizePlanService.updateProcessSchemeConfig(reqVO);
|
||||
return success(Boolean.TRUE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@GetMapping("/getGoodsDataFilter")
|
||||
@Operation(summary = "未排单高级筛选-板材分组")
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
|
||||
|
||||
+13
@@ -196,4 +196,17 @@ public class PlanController {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("getPlanPlate")
|
||||
@Operation(summary = "根据排单ID获取打印标签需要的小板信息")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('placeorder:print-label','producePlan:print-label')")
|
||||
public CommonResult<PageResult<PlateResList>> getPlanPlateList(@Valid PlanPageReqVO pageReqVO) {
|
||||
|
||||
return success(planService.getPlanPlateList(pageReqVO));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PlanSchemeConfigReqVO {
|
||||
|
||||
|
||||
@Schema(description = "排单ID")
|
||||
private Long planId;
|
||||
|
||||
|
||||
@Schema(description = "方案组ID")
|
||||
private Long processId;
|
||||
|
||||
|
||||
@Schema(description = "加工方案组的配置项ID")
|
||||
private Long planConfigId;
|
||||
|
||||
|
||||
@Schema(description = "方案组配置项名称")
|
||||
private String planName;
|
||||
|
||||
|
||||
@Schema(description = "加工分线配置ID")
|
||||
private String processLineConfig;
|
||||
|
||||
|
||||
@Schema(description = "加工分线名称")
|
||||
private String processLineName;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置ID")
|
||||
private String optimizationConfig;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置名称")
|
||||
private String optimizationConfigName;
|
||||
|
||||
|
||||
@Schema(description = "解析器配置ID")
|
||||
private String analyzer;
|
||||
|
||||
|
||||
@Schema(description = "解析器名称")
|
||||
private String analyzerName;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
/**
|
||||
* @author 排单对应的加工方案组的配置信息
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ProcessSchemeModelDO extends ESDocument {
|
||||
|
||||
|
||||
@Schema(description = "排单ID")
|
||||
private Long planId;
|
||||
|
||||
|
||||
@Schema(description = "方案组ID")
|
||||
private Long processId;
|
||||
|
||||
|
||||
@Schema(description = "加工方案组的配置项ID")
|
||||
private Long planConfigId;
|
||||
|
||||
|
||||
@Schema(description = "方案组配置项名称")
|
||||
private String planName;
|
||||
|
||||
|
||||
@Schema(description = "加工分线配置ID")
|
||||
private String processLineConfig;
|
||||
|
||||
|
||||
@Schema(description = "加工分线名称")
|
||||
private String processLineName;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置ID")
|
||||
private String optimizationConfig;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置名称")
|
||||
private String optimizationConfigName;
|
||||
|
||||
|
||||
@Schema(description = "解析器配置ID")
|
||||
private String analyzer;
|
||||
|
||||
|
||||
@Schema(description = "解析器名称")
|
||||
private String analyzerName;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+4
@@ -48,6 +48,10 @@ public class OptimizeBoardModelDO extends ESDocument {
|
||||
private Boolean isLock;
|
||||
|
||||
|
||||
@Schema(description = "是否有新加入的小板")
|
||||
private Boolean isNewInsertPlate;
|
||||
|
||||
|
||||
@Schema(description = "实际的开料的大板的ID")
|
||||
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
|
||||
private List<String> goodsId;
|
||||
|
||||
+6
@@ -22,6 +22,8 @@ public interface OptimizePlanService {
|
||||
|
||||
String PLAN_ACTUAL_GOODS_MODEL = "imes_plan_actual_goods_model";
|
||||
|
||||
String PLAN_PROCESS_SCHEME_CONFIG = "imes_plan_process_scheme_config_model";
|
||||
|
||||
|
||||
List<PlateOptimize> getPlateListByPlanId(Long planId);
|
||||
|
||||
@@ -61,5 +63,9 @@ public interface OptimizePlanService {
|
||||
|
||||
PageResult<OrderRespVOCopy> getOrderPlateDataFilter(FilterDataPageReqVO pageReqVO);
|
||||
|
||||
Boolean getNewPlanPlate(Long planId);
|
||||
|
||||
void updateProcessSchemeConfig(PlanSchemeConfigReqVO reqVO);
|
||||
|
||||
PageResult<OrderGoodsResp> getGoodsPlateDataFilter(FilterDataPageReqVO pageReqVO);
|
||||
}
|
||||
|
||||
+83
-61
@@ -712,6 +712,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
planDO.setProcessId(req.getProcessId());
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
// 保存排单对应的方案组的配置信息
|
||||
getPlanProcessSchemeConfig(planDO.getProcessId(),planId);
|
||||
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL);
|
||||
|
||||
}else {
|
||||
@@ -742,6 +745,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
}
|
||||
|
||||
boardModelDO.setIsNewInsertPlate(Boolean.FALSE);
|
||||
|
||||
|
||||
// 保存优化后的大板数据
|
||||
@@ -757,39 +761,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
|
||||
// 查询原优化信息然后进行判断
|
||||
// if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
//
|
||||
// if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
|
||||
// throw exception(THIS_PLAN_OPTIMIZE_DATA_ERROR);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
//
|
||||
// Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false);
|
||||
//
|
||||
// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
// assert loginUser != null;
|
||||
//
|
||||
// Boolean data = permissionApi.hasAnyPermissions(loginUser.getId(), "placeorder:list").getCheckedData();
|
||||
//
|
||||
// if(Boolean.TRUE.equals(isLock) && planDO.getIsScheduled().equals(true) && Boolean.FALSE.equals(data)){
|
||||
// throw exception(THIS_PLAN_OPTIMIZE_IS_LOCK);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void saveProcessSchemeResults(SaveProcessSchemeReqVO saveProcessSchemeReqVO) {
|
||||
|
||||
@@ -815,9 +792,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
if(CollUtil.isNotEmpty(plateDOS)) {
|
||||
|
||||
plateDOS.forEach(f -> {
|
||||
f.setIsOptimized(true);
|
||||
});
|
||||
plateDOS.forEach(f -> f.setIsOptimized(true));
|
||||
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
}
|
||||
@@ -830,10 +805,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
throw exception(THIS_PLAN_PLATE_IS_CUT);
|
||||
}
|
||||
|
||||
// 保存排单对应的加工方案组的配置信息
|
||||
getPlanProcessSchemeConfig(processId,planId);
|
||||
|
||||
planMapper.updateById(planDO.setProcessId(processId));
|
||||
|
||||
|
||||
// 修改方案组,删除全部的方案组的优化信息
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID,planId,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
@@ -847,40 +823,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
}
|
||||
|
||||
List<ProcessSchemeModelDO> processSchemeModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_CONFIG, ProcessSchemeModelDO.class);
|
||||
|
||||
// 保存排单对应的加工方案组的配置信息
|
||||
if(CollUtil.isEmpty(processSchemeModelDOS)){
|
||||
|
||||
getPlanProcessSchemeConfig(processId,planId);
|
||||
|
||||
}
|
||||
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID,FIELD_PLAN_CONFIG_ID,planId,planConfigIds,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL,schemeModelDOS);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// // 不能加非空判断,因为方案组里可能没有优化信息
|
||||
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
//
|
||||
//// List<Boolean> isLocks = new ArrayList<>();
|
||||
//
|
||||
// if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
//
|
||||
// optimizeBoardModelDOS.forEach(f->{
|
||||
//
|
||||
//// isLocks.add(Optional.ofNullable(f.getIsLock()).orElse(false));
|
||||
//
|
||||
// schemeModelDOS.add(SaveProcessSchemeModelDO.builder()
|
||||
// .planConfigId(f.getPlanConfigId())
|
||||
// .planName(f.getPlanConfigName())
|
||||
// .plateNum(f.getPlaceBlockNumber())
|
||||
// .goodsNum(f.getBoardCount())
|
||||
// .isOptimized(true)
|
||||
// .build());
|
||||
//
|
||||
// });
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -891,11 +850,36 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
PlanProcessSchemeList planProcessSchemeList = new PlanProcessSchemeList();
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
PlanDO planDO = validatePlanExists(planId);
|
||||
|
||||
// List<ProcessSchemeDTO> schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOList;
|
||||
|
||||
// 获取排单对应的方案组的配置信息
|
||||
List<ProcessSchemeModelDO> schemeModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_CONFIG, ProcessSchemeModelDO.class);
|
||||
|
||||
if(CollUtil.isNotEmpty(schemeModelDOS)){
|
||||
|
||||
if(!planDO.getProcessId().equals(processId)){
|
||||
schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
|
||||
}else {
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOS = BeanUtils.toBean(schemeModelDOS, ProcessSchemeDTO.class);
|
||||
schemeDTOList = systemConfigApi.getPlanProcessSchemeConfig(schemeDTOS).getCheckedData();
|
||||
}
|
||||
|
||||
}else {
|
||||
|
||||
schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
|
||||
}
|
||||
|
||||
|
||||
planProcessSchemeList.setProcessSchemeList(schemeDTOList);
|
||||
|
||||
validatePlanExists(planId);
|
||||
|
||||
// 查询排单对应的方案组信息
|
||||
List<SaveProcessSchemeModelDO> saveProcessSchemeReqVOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class);
|
||||
@@ -1159,6 +1143,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean getNewPlanPlate(Long planId) {
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
List<OptimizeBoardModelDO> modelDOS = optimizeBoardModelDOS.stream().filter(f -> f.getIsNewInsertPlate().equals(Boolean.TRUE)).toList();
|
||||
return modelDOS.isEmpty() ? Boolean.FALSE : Boolean.TRUE;
|
||||
}
|
||||
|
||||
return Boolean.FALSE;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<OrderGoodsResp> getGoodsPlateDataFilter(FilterDataPageReqVO pageReqVO) {
|
||||
|
||||
@@ -1768,6 +1769,27 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
|
||||
|
||||
// 查询排单对应的加工方案组的配置信息并保存
|
||||
private void getPlanProcessSchemeConfig(Long processId,Long planId){
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOS = systemConfigApi.getProcessSchemeConfig(processId).getCheckedData();
|
||||
|
||||
List<ProcessSchemeModelDO> modelDOS = BeanUtils.toBean(schemeDTOS, ProcessSchemeModelDO.class);
|
||||
|
||||
modelDOS.forEach(f->{
|
||||
f.setProcessId(processId);
|
||||
f.setPlanId(planId);
|
||||
});
|
||||
|
||||
// 删除旧的排单对应的加工方案组的配置信息
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID,planId,PLAN_PROCESS_SCHEME_CONFIG);
|
||||
|
||||
// 保存新的排单对应的加工方案组的配置信息
|
||||
esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_CONFIG,modelDOS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void validatePlanStatus(PlanDO planDO,List<Boolean> isLocks){
|
||||
|
||||
+3
@@ -72,4 +72,7 @@ public interface PlanService {
|
||||
List<OrderRoomBodyList> getOrderRoomBody(List<Long> orderIds);
|
||||
|
||||
List<PlanActualGoodsResp> getPlanGoodsList(SavePlanPlateList savePlanPlateList);
|
||||
|
||||
PageResult<PlateResList> getPlanPlateList(PlanPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
+140
-29
@@ -24,6 +24,7 @@ import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PlatePlaceInfo;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.ProcessSchemeModelDO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.RemainBoardInfo;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.OrderPlateIds;
|
||||
@@ -119,6 +120,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
private static final String PLAN_ACTUAL_GOODS_MODEL = "imes_plan_actual_goods_model";
|
||||
|
||||
private static final String PLAN_PROCESS_SCHEME_CONFIG = "imes_plan_process_scheme_config_model";
|
||||
|
||||
@Resource
|
||||
private ElasticsearchClient elasticsearchClient;
|
||||
|
||||
@@ -225,6 +228,25 @@ public class PlanServiceImpl implements PlanService {
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
|
||||
// 排单对应的加工方案组的配置信息
|
||||
List<ProcessSchemeModelDO> processSchemeModelDOS;
|
||||
|
||||
try {
|
||||
processSchemeModelDOS = parseArray(systemConfigRespDTO.getSetting(), ProcessSchemeModelDO.class);
|
||||
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage());
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR);
|
||||
}
|
||||
|
||||
planDOS.forEach(f-> processSchemeModelDOS.forEach(p->{
|
||||
p.setPlanId(f.getId());
|
||||
p.setProcessId(processId);
|
||||
}));
|
||||
|
||||
esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_CONFIG,processSchemeModelDOS);
|
||||
|
||||
|
||||
planMapper.insertBatch(planDOS);
|
||||
|
||||
planItemMapper.insertBatch(planItemDOS, planItemDOS.size());
|
||||
@@ -357,18 +379,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
.inIfPresent(OrderItemDO::getOrderId, orderIds)
|
||||
.in(OrderItemDO::getPlateId, plateIdList));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 排单对应的优化数据删除
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
|
||||
// 删除排单对应的加工方案的优化数据
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
|
||||
// 查询删除排单对应的生产单是否还有进行了其他排单
|
||||
List<Long> orderIdList = planItemMapper.selectOrderPlateList(orderIds, getUserOrganId());
|
||||
|
||||
@@ -387,6 +399,19 @@ public class PlanServiceImpl implements PlanService {
|
||||
orderMapper.updateBatch(orderList);
|
||||
}
|
||||
|
||||
|
||||
// 排单对应的优化数据删除
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
|
||||
// 删除排单对应的加工方案的优化数据
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
|
||||
// 删除排单对应的加工方案组的配置信息
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,PLAN_PROCESS_SCHEME_CONFIG);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -995,6 +1020,81 @@ public class PlanServiceImpl implements PlanService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<PlateResList> getPlanPlateList(PlanPageReqVO pageReqVO) {
|
||||
|
||||
Long planId = Long.valueOf(pageReqVO.getId());
|
||||
|
||||
QueryWrapperX<PlanItemDO> queryWrapperX = new QueryWrapperX<>();
|
||||
|
||||
queryWrapperX.eq("opi.organ_id",getUserOrganId())
|
||||
.eq(FIELD_PLAN_ID,planId);
|
||||
|
||||
Integer pageNo = (pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize();
|
||||
|
||||
List<PlateResList> plateResLists = planItemMapper.selectPlateListByPlateIds(queryWrapperX,pageNo,pageReqVO.getPageSize());
|
||||
|
||||
|
||||
if (CollUtil.isEmpty(plateResLists)) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
Long sum = planItemMapper.selectPlateCountByPlateIds(queryWrapperX);
|
||||
|
||||
List<OptimizeBoardModelDO> boardModelDOS = esUtils.getEsDocument(FIELD_PLANID, planId, ORDER_REMAIN_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
if(CollUtil.isNotEmpty(boardModelDOS)) {
|
||||
|
||||
List<RemainBoardInfo> remainBoardInfos = new ArrayList<>();
|
||||
|
||||
boardModelDOS.forEach(f -> {
|
||||
|
||||
if (f.getRemainBoardInfo() != null) {
|
||||
try {
|
||||
remainBoardInfos.addAll(new ArrayList<>(parseArray(f.getRemainBoardInfo(), RemainBoardInfo.class)));
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw exception(PLAN_PLATE_OPTIMIZE_DATA_ERROR);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
List<RemainBoardInfo.PlaceBoardList> placeBoardList = new ArrayList<>();
|
||||
|
||||
remainBoardInfos.forEach(f-> placeBoardList.addAll(f.getPlaceBoardList()));
|
||||
|
||||
if(CollUtil.isNotEmpty(placeBoardList)){
|
||||
|
||||
List<RemainBoardInfo.Blocks> blocksList = new ArrayList<>();
|
||||
placeBoardList.forEach(f->blocksList.addAll(f.getBlocks()));
|
||||
|
||||
if(CollUtil.isNotEmpty(blocksList)){
|
||||
|
||||
plateResLists.forEach(f->{
|
||||
|
||||
f.setBoardId(blocksList.stream().filter(b->b.getBlockId().equals(f.getPlateNo())).findFirst().orElse(new RemainBoardInfo.Blocks()).getBoardId());
|
||||
|
||||
f.setPlaceId(blocksList.stream().filter(b->b.getBlockId().equals(f.getPlateNo())).findFirst().orElse(new RemainBoardInfo.Blocks()).getPlaceId());
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return new PageResult<>(plateResLists, sum);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private PlanDO validatePlan(Long id) {
|
||||
|
||||
PlanDO planDO = planMapper.selectById(id);
|
||||
@@ -1346,6 +1446,36 @@ public class PlanServiceImpl implements PlanService {
|
||||
});
|
||||
|
||||
|
||||
// 有新添加的小板,修改优化信息的字段信息
|
||||
try {
|
||||
|
||||
List<FieldValue> fieldValues = insertPlanIds.stream().map(FieldValue::of).toList();
|
||||
|
||||
UpdateByQueryRequest.Builder builder = new UpdateByQueryRequest.Builder();
|
||||
|
||||
builder.index(ORDER_REMAIN_PLATE_MODEL)
|
||||
.query(qb -> qb.bool(bq -> bq.filter(f->{
|
||||
f.terms(t->t.field(FIELD_PLANID).terms(e->e.value(fieldValues)));
|
||||
return f;
|
||||
})
|
||||
))
|
||||
.script(s -> s.inline(i -> i
|
||||
.source("ctx._source.isNewInsertPlate = params.new_value")
|
||||
.params("new_value", JsonData.of(Boolean.TRUE))
|
||||
));
|
||||
|
||||
UpdateByQueryRequest request = builder.build();
|
||||
|
||||
elasticsearchClient.updateByQuery(request);
|
||||
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 修改排单加工方案的优化状态
|
||||
updateProcessSchemeStatus(insertPlanIds);
|
||||
|
||||
@@ -1605,25 +1735,6 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
|
||||
|
||||
// // 构建查询和脚本
|
||||
// builder.index(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL)
|
||||
// .query(qb -> qb.bool(bq -> bq
|
||||
// .must(mq -> mq.terms(tq -> tq.field("FIELD_PLANID").terms(t -> t.value(fieldValues))))
|
||||
// .must(mq -> mq.match(mtq -> mtq.field("machineType").query(MachineTypeEnum.CUTTING.getType())))
|
||||
// ))
|
||||
// .script(s -> s.inline(i -> i
|
||||
// .source("""
|
||||
// ctx._source.isOptimized = params.isOptimized;
|
||||
// ctx._source.lastUpdated = params.lastUpdated;
|
||||
// ctx._source.updatedBy = params.updatedBy;
|
||||
// """)
|
||||
// .params("isOptimized", JsonData.of(false))
|
||||
// .params("lastUpdated", JsonData.of("2025-01-02T12:00:00Z"))
|
||||
// .params("updatedBy", JsonData.of("AutomatedSystem"))
|
||||
// ));
|
||||
|
||||
|
||||
|
||||
|
||||
public static void mergeOrderGoodsLists(List<OrderGoodsResp> list1, List<OrderGoodsResp> list2) {
|
||||
// Build a map for quick lookup of items in list1 by their unique properties
|
||||
|
||||
Reference in New Issue
Block a user