新增cad三维看图能力相关

This commit is contained in:
gaoqr
2025-12-24 17:24:10 +08:00
parent a78ddf464c
commit dd431650ba
27 changed files with 529 additions and 149 deletions
@@ -0,0 +1,27 @@
package com.cf.imes.module.executor.controller.admin.order.vo.order;
import com.cf.imes.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Schema(description = "管理后台 - 柜体视图板材分组条件")
@Data
@ToString(callSuper = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderBodyViewPlatePageReqVO extends PageParam {
@Schema(description = "生产单号", example = "1024")
private Long orderId;
@Schema(description = "房间编号", example = "1024")
private Long roomId;
@Schema(description = "柜体编号", example = "1024")
private Long bodyId;
}
@@ -88,7 +88,4 @@ public class OrderRespVO {
private LocalDateTime createTime;
private Boolean deleted;
@Schema(description = "cad图纸路径")
private String cadViewPath;
}
@@ -1,10 +1,8 @@
package com.cf.imes.module.executor.controller.admin.order.vo.product;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import java.util.List;
import com.alibaba.excel.annotation.*;
@@ -6,6 +6,7 @@ import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.excel.core.util.ExcelUtils;
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderBodyViewPlatePageReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList;
import com.cf.imes.module.executor.controller.admin.plate.vo.*;
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
@@ -138,5 +139,16 @@ public class PlateController {
return success(plateService.createNewPlate(reqVO));
}
@GetMapping("/body/view/page")
@Operation(summary = "获取柜体下的板件视图分页列表数据")
public CommonResult<PageResult<OrderBodyViewPlatePageRespVO>> getBodyViewPlatesPage(@Valid OrderBodyViewPlatePageReqVO orderBodyPageRespVO) {
return success(plateService.getBodyViewPlatesPage(orderBodyPageRespVO));
}
@GetMapping("/body/view/cadinfo")
@Operation(summary = "获取板件对应柜体下的所有板件视图列表数据")
@Parameter(name = "plateNo", description = "板件id", required = true)
public CommonResult<List<OrderBodyViewPlatePageRespVO>> getBodyViewPlatesCadInfo(@RequestParam(value = "plateNo") Long plateNo) {
return success(plateService.getBodyViewPlatesCadInfo(plateNo));
}
}
@@ -0,0 +1,66 @@
package com.cf.imes.module.executor.controller.admin.plate.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
*
*
* @author Gqr
* @since 2025/12/23 13:40
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "管理后台 - 柜体对应的板件视图信息")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderBodyViewPlatePageRespVO {
@Schema(description = "板件编号")
private Long id;
@Schema(description = "板件名称")
private String name;
@Schema(description = "板件宽度")
private BigDecimal width;
@Schema(description = "板件高度")
private BigDecimal height;
@Schema(description = "板件厚度")
private BigDecimal thickness;
@Schema(description = "板件CAD图纸ID")
private Integer cadViewId;
@Schema(description = "左封边厚度")
private BigDecimal sealLeft;
@Schema(description = "右封边厚度")
private BigDecimal sealRight;
@Schema(description = "上封边厚度")
private BigDecimal sealUp;
@Schema(description = "下封边厚度")
private BigDecimal sealDown;
@Schema(description = "材质")
private String material;
@Schema(description = "颜色")
private String color;
@Schema(description = "CAD图纸文件ID")
private Long cadViewFileId;
@Schema(description = "CAD设计板编号")
private String customNumber;
}
@@ -146,9 +146,4 @@ public class OrderDO extends BaseDO {
private Double plannedPlateArea;
private int version;
/**
* cad图纸路径
*/
private String cadViewPath;
}
@@ -1,6 +1,5 @@
package com.cf.imes.module.executor.dal.dataobject.orderBody;
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
@@ -82,4 +81,9 @@ public class OrderBodyDO extends BaseDO {
* 是否删除
*/
private Boolean deleted;
/**
* cad图纸数据文件id
*/
private Long cadViewFileId;
}
@@ -0,0 +1,79 @@
package com.cf.imes.module.executor.dal.dataobject.orderItem;
import lombok.Data;
import java.math.BigDecimal;
/**
* 柜体板件视图数据DO
*
* @author Gqr
* @since 2025/12/23 11:54
*/
@Data
public class OrderBodyViewPlatesPageDO {
/**
* 主键
*/
private Long id;
/**
* 板件名称
*/
private String name;
/**
* 板件宽度
*/
private BigDecimal width;
/**
* 板件高度
*/
private BigDecimal height;
/**
* 板件厚度
*/
private BigDecimal thickness;
/**
* 板件CAD图纸ID
*/
private Integer cadViewId;
/**
* 左封边厚度
*/
private BigDecimal sealLeft;
/**
* 右封边厚度
*/
private BigDecimal sealRight;
/**
* 上封边厚度
*/
private BigDecimal sealUp;
/**
* 下封边厚度
*/
private BigDecimal sealDown;
/**
* 材质
*/
private String material;
/**
* 颜色
*/
private String color;
/**
* cad设计板编号
*/
private String customNumber;
}
@@ -222,4 +222,9 @@ public class PlateDO extends BaseDO {
* cad图纸数据
*/
private String cadData;
/**
* cad自定义板编号
*/
private String cadPlateNo;
}
@@ -10,6 +10,7 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderGoodsRes
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderBodyViewPlatesPageDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -186,4 +187,19 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
List<PlateAndPartIdList> selectOrderPackPlateIds(@Param("orderId") Long orderId,@Param("organId") Long organId);
/**
* 分页查询柜体板件视图数据
*
* @param page
* @param orderId
* @param roomId
* @param bodyId
* @return
*/
IPage<OrderBodyViewPlatesPageDO> selectBodyViewPlatesPage(@Param("page") IPage page,
@Param("orderId") Long orderId,
@Param("roomId") Long roomId,
@Param("bodyId") Long bodyId,
@Param("organId") Long organId,
@Param("cadView") boolean cadView);
}
@@ -2,6 +2,7 @@ package com.cf.imes.module.executor.service.plate;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderBodyViewPlatePageReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList;
import com.cf.imes.module.executor.controller.admin.plate.vo.*;
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
@@ -94,4 +95,19 @@ public interface PlateService {
List<InsertPlateRespVO> createNewPlate(List<OptimizationSavePlateReqVO> reqVO);
/**
* 获取柜体板件视图分页列表
*
* @param orderBodyPageRespVO
* @return
*/
PageResult<OrderBodyViewPlatePageRespVO> getBodyViewPlatesPage(OrderBodyViewPlatePageReqVO orderBodyPageRespVO);
/**
* 根据板件id获取柜体下的所有板件cad视图所需信息
*
* @param plateId
* @return
*/
List<OrderBodyViewPlatePageRespVO> getBodyViewPlatesCadInfo(Long plateId);
}
@@ -1,5 +1,6 @@
package com.cf.imes.module.executor.service.plate;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import co.elastic.clients.elasticsearch.ElasticsearchClient;
@@ -14,6 +15,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.*;
import com.cf.imes.framework.common.exception.ServiceException;
import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.Assert.AssertUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
@@ -21,6 +23,7 @@ import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd;
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderBodyViewPlatePageReqVO;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlanPlateNumAndAreaRespVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList;
@@ -28,6 +31,7 @@ import com.cf.imes.module.executor.controller.admin.plate.vo.*;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderBodyViewPlatesPageDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
@@ -136,28 +140,28 @@ public class PlateServiceImpl implements PlateService {
@Transactional(rollbackFor = Exception.class)
public void deletePlate(List<Long> plateIds, Long planId) {
if(CollUtil.isEmpty(plateIds)){
if (CollUtil.isEmpty(plateIds)) {
return;
}
PlanDO planDO = planMapper.selectById(planId);
AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR);
AssertUtils.notEmpty(planDO, ORDER_PLAN_DATE_ERROR);
List<PlateDO> plateDOS = plateMapper.selectBatchIds(plateIds);
AssertUtils.notEmpty(plateDOS,REMAIN_PLATE_NOT_EXISTS);
AssertUtils.notEmpty(plateDOS, REMAIN_PLATE_NOT_EXISTS);
for (PlateDO plateDO : plateDOS) {
if(!plateDO.getType().equals(OrderPlateTypeEnum.SELFINCREASINGBOARD.getType())){
throw new ServiceException(PLATE_IS_SOURCE,plateDO.getPlateNo());
if (!plateDO.getType().equals(OrderPlateTypeEnum.SELFINCREASINGBOARD.getType())) {
throw new ServiceException(PLATE_IS_SOURCE, plateDO.getPlateNo());
}
if(!plateDO.getIsCutted().equals(OrderPlateCutStatusEnum.NOCUTTING.getStatus())){
if (!plateDO.getIsCutted().equals(OrderPlateCutStatusEnum.NOCUTTING.getStatus())) {
throw new ServiceException(THIS_PLATE_IS_OPTIMIZE,plateDO.getPlateNo());
throw new ServiceException(THIS_PLATE_IS_OPTIMIZE, plateDO.getPlateNo());
}
}
@@ -175,7 +179,7 @@ public class PlateServiceImpl implements PlateService {
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
orderBodyDOS.forEach(f->{
orderBodyDOS.forEach(f -> {
int plateNum = orderItemDOS.stream().filter(o -> f.getId().equals(o.getBodyId())).toList().size();
f.setPlateNum(f.getPlateNum() - plateNum);
@@ -191,7 +195,7 @@ public class PlateServiceImpl implements PlateService {
// 删除添加自增板时新增的大板ID
List<Long> orderGoodsIdList = goodsMapper.selectInsertGoodsIds(orderIds, goodsIds, getUserOrganId());
if(CollUtil.isNotEmpty(orderGoodsIdList)){
if (CollUtil.isNotEmpty(orderGoodsIdList)) {
goodsMapper.deleteBatchIds(orderGoodsIdList);
}
@@ -301,8 +305,6 @@ public class PlateServiceImpl implements PlateService {
}
@Override
public PageResult<PlateDO> getPlatePage(PlatePageReqVO pageReqVO) {
return plateMapper.selectPage(pageReqVO);
@@ -317,8 +319,6 @@ public class PlateServiceImpl implements PlateService {
}
@Override
public PageResult<PlateResList> getOrderPlatePage(NoPlanPlatePageReqVO pageReqVO) {
@@ -331,14 +331,14 @@ public class PlateServiceImpl implements PlateService {
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
queryWrapperX
.eq("o.organ_id",organId)
.eq("o.deleted",false)
.in("o.status",statusList)
.eq("o.organ_id", organId)
.eq("o.deleted", false)
.in("o.status", statusList)
.isNotNull("op.id")
.eq("op.deleted",false);
.eq("op.deleted", false);
if(pageReqVO.getPlanId() != null){
if (pageReqVO.getPlanId() != null) {
Long planId = pageReqVO.getPlanId();
@@ -348,7 +348,7 @@ public class PlateServiceImpl implements PlateService {
List<OrderGoodsResp> goodsRespVOS = planMapper.selectPlanGoodsList(planId, organId);
AssertUtils.notEmpty(goodsRespVOS,PLAN_NOT_EXISTS);
AssertUtils.notEmpty(goodsRespVOS, PLAN_NOT_EXISTS);
List<String> material = goodsRespVOS.stream().map(OrderGoodsResp::getMaterial).distinct().toList();
@@ -362,7 +362,7 @@ public class PlateServiceImpl implements PlateService {
// 混单
if(planDO.getType().equals(PlanTypeEnum.MIXEDORDERPLAN.getType())){
if (planDO.getType().equals(PlanTypeEnum.MIXEDORDERPLAN.getType())) {
// 混单添加查询条件
mixedInsertQuery(pageReqVO, planDO, material, thickness, queryWrapperX);
@@ -381,37 +381,37 @@ public class PlateServiceImpl implements PlateService {
else {
queryWrapperX
.likeIfPresent(FIELD_OG_MATERIAL,pageReqVO.getMaterial())
.likeIfPresent(FIELD_OG_BRAND,pageReqVO.getBrand())
.likeIfPresent(FIELD_OG_COLOR,pageReqVO.getColor())
.eqIfPresent(FIELD_OP_THICKNESS,pageReqVO.getThickness());
.likeIfPresent(FIELD_OG_MATERIAL, pageReqVO.getMaterial())
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
.likeIfPresent(FIELD_OG_COLOR, pageReqVO.getColor())
.eqIfPresent(FIELD_OP_THICKNESS, pageReqVO.getThickness());
}
queryWrapperX
.inIfPresent("op.goods_id",pageReqVO.getGoodsIdList())
.inIfPresent("op.goods_id", pageReqVO.getGoodsIdList())
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null)
.likeIfPresent("op.id",pageReqVO.getPlateId())
.likeIfPresent("op.name",pageReqVO.getPlateName())
.likeIfPresent("op.plate_no",pageReqVO.getPlateNo())
.likeIfPresent("op.custom_plate_no",pageReqVO.getCustomPlateNo())
.likeIfPresent("op.id", pageReqVO.getPlateId())
.likeIfPresent("op.name", pageReqVO.getPlateName())
.likeIfPresent("op.plate_no", pageReqVO.getPlateNo())
.likeIfPresent("op.custom_plate_no", pageReqVO.getCustomPlateNo())
.betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()})
.betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()})
.betweenIfPresent(FIELD_OP_THICKNESS, new BigDecimal[]{pageReqVO.getThicknessMinRang(), pageReqVO.getThicknessMaxRang()})
.eqIfPresent("op.texture",pageReqVO.getTexture())
.eqIfPresent("op.is_special_shaped",pageReqVO.getIsSpecialShaped())
.eqIfPresent("op.is_sculpt",pageReqVO.getIsSculpt())
.eqIfPresent("op.is_row_hole",pageReqVO.getIsRowHole())
.likeIfPresent("op.remark",pageReqVO.getRemark())
.eqIfPresent("op.texture", pageReqVO.getTexture())
.eqIfPresent("op.is_special_shaped", pageReqVO.getIsSpecialShaped())
.eqIfPresent("op.is_sculpt", pageReqVO.getIsSculpt())
.eqIfPresent("op.is_row_hole", pageReqVO.getIsRowHole())
.likeIfPresent("op.remark", pageReqVO.getRemark())
.orderByDesc("o.id, op.id");
Integer pageNo = (pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize();
List<PlateResList> plateResLists = orderMapper.selectNoPlanOrderPlateList(queryWrapperX,pageNo,pageReqVO.getPageSize(),organId);
List<PlateResList> plateResLists = orderMapper.selectNoPlanOrderPlateList(queryWrapperX, pageNo, pageReqVO.getPageSize(), organId);
if(CollUtil.isEmpty(plateResLists)){
if (CollUtil.isEmpty(plateResLists)) {
return new PageResult<>();
@@ -420,7 +420,7 @@ public class PlateServiceImpl implements PlateService {
queryWrapperX
.groupBy("o.id");
List<Long> plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX,organId);
List<Long> plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX, organId);
long sum = plateCount.stream().mapToLong(Long::longValue).sum();
@@ -465,7 +465,7 @@ public class PlateServiceImpl implements PlateService {
@Override
public PageResult<PlateRespVO> getPlatePageByTerms(PlateTermsPageReqVO pageReqVO) {
PageDTO<PlateRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<PlateRespVO> pageRes = plateMapper.selectProductList(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(),getUserOrganId());
IPage<PlateRespVO> pageRes = plateMapper.selectProductList(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), getUserOrganId());
return new PageResult<PlateRespVO>(pageRes.getRecords(), pageRes.getTotal());
}
@@ -487,11 +487,11 @@ public class PlateServiceImpl implements PlateService {
@SneakyThrows
@Override
public List<BodyPlateDetailVO> getPlateModelByPlateId(List<Long> bodyIds) {
public List<BodyPlateDetailVO> getPlateModelByPlateId(List<Long> bodyIds) {
List<BodyPlateIdDTO> list = plateMapper.selectJoinList(BodyPlateIdDTO.class, new MPJLambdaWrapperX<PlateDO>()
.selectAs(PlateDO::getId, FIELD_PLATE_ID)
.leftJoin(OrderItemDO.class, OrderItemDO::getPlateId, PlateDO::getId)
.eq(OrderItemDO::getOrganId,getUserOrganId())
.eq(OrderItemDO::getOrganId, getUserOrganId())
.in(OrderItemDO::getBodyId, bodyIds)
.select(OrderItemDO::getBodyId)
);
@@ -503,18 +503,17 @@ public class PlateServiceImpl implements PlateService {
List<BodyPlateDetailVO> bodyPlateDetailVOS = new ArrayList<>();
List<List<List<Object>>> data = new ArrayList<>();
map.entrySet().forEach(e->{
bodyPlateDetailVOS.add(BodyPlateDetailVO.builder()
.orderModelList(e.getValue())
.bodyId(e.getKey())
.build()
);
map.entrySet().forEach(e -> {
bodyPlateDetailVOS.add(BodyPlateDetailVO.builder()
.orderModelList(e.getValue())
.bodyId(e.getKey())
.build()
);
});
return bodyPlateDetailVOS;
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<InsertPlateRespVO> createNewPlate(List<OptimizationSavePlateReqVO> reqVO) {
@@ -529,15 +528,15 @@ public class PlateServiceImpl implements PlateService {
List<OrderModelDO> orderPlateModelDOS = new ArrayList<>();
Long planId = Optional.ofNullable(reqVO.get(0).getPlanId()).orElseThrow(()-> new ServiceException(ORDER_PLAN_PLATE_ERROR));
Long planId = Optional.ofNullable(reqVO.get(0).getPlanId()).orElseThrow(() -> new ServiceException(ORDER_PLAN_PLATE_ERROR));
PlanDO planDO = planMapper.selectById(planId);
AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR);
AssertUtils.notEmpty(planDO, ORDER_PLAN_DATE_ERROR);
List<Long> orderIds = reqVO.stream().map(OptimizationSavePlateReqVO::getOrderId).distinct().toList();
// 查询排单下的orderGoodsId列表
List<Long> goodsId = planMapper.selectPlanOrderGoodsId(planId,orderIds, getUserOrganId());
List<Long> goodsId = planMapper.selectPlanOrderGoodsId(planId, orderIds, getUserOrganId());
List<GoodsDO> goodsDOS = goodsMapper.selectBatchIds(goodsId);
@@ -546,9 +545,9 @@ public class PlateServiceImpl implements PlateService {
Map<Long, OrderPlanPlateNumAndAreaRespVO> orderGoodsPlanPlateNumAndAreaRespVOMap = new HashMap<>();
// 组装新增数据
reqVO.forEach(f->{
reqVO.forEach(f -> {
Map<String,String> plateIdAndNo = new HashMap<>();
Map<String, String> plateIdAndNo = new HashMap<>();
Long orderId = f.getOrderId();
@@ -571,7 +570,7 @@ public class PlateServiceImpl implements PlateService {
// 小板ID
Long plateId = (Long) identifierGenerator.nextId(null);
plateIdAndNo.put(plateId.toString(),plateNo);
plateIdAndNo.put(plateId.toString(), plateNo);
// 计算面积
BigDecimal area = f.getWidth().multiply(f.getHeight()).movePointLeft(6).stripTrailingZeros();
@@ -644,7 +643,7 @@ public class PlateServiceImpl implements PlateService {
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
orderBodyDOS.forEach(f->{
orderBodyDOS.forEach(f -> {
Integer plateNum = numVOS.stream()
.filter(n -> n.getBodyId().equals(f.getId()))
@@ -724,7 +723,6 @@ public class PlateServiceImpl implements PlateService {
}
public static List<OrderBodyNumVO> mergeOrderBody(List<OrderBodyNumVO> dataList) {
if (dataList == null || dataList.isEmpty()) {
return Collections.emptyList();
@@ -744,16 +742,12 @@ public class PlateServiceImpl implements PlateService {
}
private List<OrderModelDO> buildRespByPlateIds(Collection<Long> plateIds, String index) {
List<FieldValue> fieldValues = plateIds.stream().map(FieldValue::of).toList();
SearchRequest.Builder builder = new SearchRequest.Builder();
builder.index(index);
builder.query(q -> q.terms(b -> b.field(FIELD_PLATE_ID).terms(e->e.value(fieldValues))));
builder.query(q -> q.terms(b -> b.field(FIELD_PLATE_ID).terms(e -> e.value(fieldValues))));
builder.size(plateIds.size());
try {
SearchResponse<OrderModelDO> search = elasticsearchClient.search(builder.build(), OrderModelDO.class);
@@ -776,29 +770,28 @@ public class PlateServiceImpl implements PlateService {
QueryWrapperX<OrderDO> queryWrapperX) {
if(Boolean.TRUE.equals(pageReqVO.getIsMixed())){
if (Boolean.TRUE.equals(pageReqVO.getIsMixed())) {
throw new ServiceException(PLAN_IS_MIXED_ERROR);
}
// 相同材质和厚度
if(planDO.getFilter().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())){
if (planDO.getFilter().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())) {
queryWrapperX
.inIfPresent(FIELD_OG_MATERIAL,material)
.likeIfPresent(FIELD_OG_BRAND,pageReqVO.getBrand())
.likeIfPresent(FIELD_OG_COLOR,pageReqVO.getColor())
.inIfPresent(FIELD_OP_THICKNESS,thickness);
.inIfPresent(FIELD_OG_MATERIAL, material)
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
.likeIfPresent(FIELD_OG_COLOR, pageReqVO.getColor())
.inIfPresent(FIELD_OP_THICKNESS, thickness);
}
// 相同厚度
else {
queryWrapperX
.likeIfPresent(FIELD_OG_MATERIAL,pageReqVO.getMaterial())
.likeIfPresent(FIELD_OG_BRAND,pageReqVO.getBrand())
.likeIfPresent(FIELD_OG_COLOR,pageReqVO.getColor())
.inIfPresent(FIELD_OP_THICKNESS,thickness);
.likeIfPresent(FIELD_OG_MATERIAL, pageReqVO.getMaterial())
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
.likeIfPresent(FIELD_OG_COLOR, pageReqVO.getColor())
.inIfPresent(FIELD_OP_THICKNESS, thickness);
}
@@ -816,14 +809,14 @@ public class PlateServiceImpl implements PlateService {
QueryWrapperX<OrderDO> queryWrapperX) {
// 是否开启混单
if(Boolean.TRUE.equals(pageReqVO.getIsMixed())){
if (Boolean.TRUE.equals(pageReqVO.getIsMixed())) {
if(!planDO.getStatus().equals(PlanStatusEnum.NOCUTTING.getStatus())){
if (!planDO.getStatus().equals(PlanStatusEnum.NOCUTTING.getStatus())) {
throw new ServiceException(PLAN_PLATE_IS_CUTTING);
}
// 相同材质和厚度 混单
if(pageReqVO.getMixedType().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())){
if (pageReqVO.getMixedType().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())) {
queryWrapperX
.inIfPresent(FIELD_OG_MATERIAL, material)
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
@@ -832,7 +825,7 @@ public class PlateServiceImpl implements PlateService {
}
// 相同厚度 混单
else{
else {
queryWrapperX
.likeIfPresent(FIELD_OG_MATERIAL, pageReqVO.getMaterial())
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
@@ -840,7 +833,7 @@ public class PlateServiceImpl implements PlateService {
.inIfPresent(FIELD_OP_THICKNESS, thickness);
}
}else {
} else {
queryWrapperX
.inIfPresent(FIELD_OG_MATERIAL, material)
.inIfPresent(FIELD_OG_BRAND, brand)
@@ -852,5 +845,53 @@ public class PlateServiceImpl implements PlateService {
}
@Override
public PageResult<OrderBodyViewPlatePageRespVO> getBodyViewPlatesPage(OrderBodyViewPlatePageReqVO pageReqVO) {
PageDTO<PlateRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<OrderBodyViewPlatesPageDO> pageRes = orderItemMapper.selectBodyViewPlatesPage(page, pageReqVO.getOrderId(), pageReqVO.getRoomId(), pageReqVO.getBodyId(), getUserOrganId(), false);
return new PageResult(BeanUtil.copyToList(pageRes.getRecords(), OrderBodyViewPlatePageRespVO.class), pageRes.getTotal());
}
@Override
public List<OrderBodyViewPlatePageRespVO> getBodyViewPlatesCadInfo(Long plateId) {
// 匹配板材
PlateDO plateDO = plateMapper.selectById(plateId);
if (ObjectUtil.isNull(plateDO)) {
throw new ServiceException(PLATE_NOT_EXISTS);
}
// 匹配orderItem
OrderItemDO orderItemDO = orderItemMapper.selectOne(new LambdaUpdateWrapper<OrderItemDO>()
.eq(OrderItemDO::getPlateId, plateId)
.eq(OrderItemDO::getOrderId, plateDO.getOrderId())
.eq(OrderItemDO::getOrganId, plateDO.getOrganId()));
if (ObjectUtil.isNull(orderItemDO)) {
throw new ServiceException(PLATE_NOT_EXISTS);
}
// 匹配柜体
OrderBodyDO orderBodyDO = orderBodyMapper.selectById(orderItemDO.getBodyId());
if (ObjectUtil.isNull(orderBodyDO)) {
throw new ServiceException(ORDER_BODY_NOT_EXISTS);
}
Long cadViewFileId = orderBodyDO.getCadViewFileId();
// 查询所有板件的视图所需信息
PageDTO<PlateRespVO> page = new PageDTO<>(1, PageParam.PAGE_SIZE_NONE);
IPage<OrderBodyViewPlatesPageDO> viewPlatesPage = orderItemMapper.selectBodyViewPlatesPage(page, orderItemDO.getOrderId(), orderItemDO.getRoomId(), orderItemDO.getBodyId(), orderItemDO.getOrganId(), true);
List<OrderBodyViewPlatesPageDO> records = viewPlatesPage.getRecords();
List<OrderBodyViewPlatePageRespVO> resultList = new ArrayList<>();
if (CollUtil.isNotEmpty(records)) {
resultList = records.stream().map(item -> {
OrderBodyViewPlatePageRespVO vo = new OrderBodyViewPlatePageRespVO();
BeanUtil.copyProperties(item, vo);
vo.setCadViewFileId(cadViewFileId);
return vo;
}).collect(Collectors.toList());
}
return resultList;
}
}
@@ -533,4 +533,21 @@
and plate_id !=0
</select>
<select id="selectBodyViewPlatesPage" resultType="com.cf.imes.module.executor.dal.dataobject.orderItem.OrderBodyViewPlatesPageDO">
SELECT p.id, p.name, p.width, p.height, p.thickness, p.cad_view_id, g.material, g.color
<if test="cadView">
, p.cad_plate_no as customNumber, p.seal_left, p.seal_down, p.seal_right, p.seal_up
</if>
FROM order_item i
LEFT JOIN `order_plate` p ON i.plate_id = p.id
LEFT JOIN `order_goods` g ON g.id = p.goods_id
WHERE i.order_id = #{orderId} AND i.organ_id = #{organId} AND p.deleted = false and i.plate_id != 0
<if test="roomId != null">
AND i.room_id = #{roomId}
</if>
<if test="bodyId != null">
AND i.body_id = #{bodyId}
</if>
</select>
</mapper>