mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
新增cad三维看图能力相关
This commit is contained in:
+27
@@ -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;
|
||||
}
|
||||
-3
@@ -88,7 +88,4 @@ public class OrderRespVO {
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private Boolean deleted;
|
||||
|
||||
@Schema(description = "cad图纸路径")
|
||||
private String cadViewPath;
|
||||
}
|
||||
-2
@@ -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.*;
|
||||
|
||||
|
||||
+12
@@ -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));
|
||||
}
|
||||
}
|
||||
+66
@@ -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;
|
||||
}
|
||||
-5
@@ -146,9 +146,4 @@ public class OrderDO extends BaseDO {
|
||||
private Double plannedPlateArea;
|
||||
|
||||
private int version;
|
||||
|
||||
/**
|
||||
* cad图纸路径
|
||||
*/
|
||||
private String cadViewPath;
|
||||
}
|
||||
|
||||
+5
-1
@@ -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;
|
||||
}
|
||||
+79
@@ -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;
|
||||
}
|
||||
+5
@@ -222,4 +222,9 @@ public class PlateDO extends BaseDO {
|
||||
* cad图纸数据
|
||||
*/
|
||||
private String cadData;
|
||||
|
||||
/**
|
||||
* cad自定义板编号
|
||||
*/
|
||||
private String cadPlateNo;
|
||||
}
|
||||
+16
@@ -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);
|
||||
}
|
||||
+16
@@ -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);
|
||||
}
|
||||
+117
-76
@@ -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;
|
||||
}
|
||||
}
|
||||
+17
@@ -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>
|
||||
Reference in New Issue
Block a user