Merge branch 'main' of ssh://192.168.1.205:9922/cf_devdept2/cf_imes_server

This commit is contained in:
lym
2024-05-09 15:28:46 +08:00
41 changed files with 588 additions and 307 deletions
@@ -1,5 +1,7 @@
package com.cf.imes.module.executor.controller.admin.plan;
import com.cf.imes.framework.es.core.valid.CreateGroup;
import com.cf.imes.framework.es.core.valid.UpdateGroup;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -10,6 +12,7 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import javax.validation.constraints.NotEmpty;
import java.util.*;
import java.io.IOException;
import com.cf.imes.framework.common.pojo.PageParam;
@@ -35,14 +38,14 @@ public class PlanController {
@PostMapping("/create")
@Operation(summary = "创建排单")
@PreAuthorize("@ss.hasPermission('executor:plan:create')")
public CommonResult<Long> createPlan(@Valid @RequestBody PlanSaveReqVO createReqVO) {
public CommonResult<Long> createPlan(@Validated(CreateGroup.class) @RequestBody PlanSaveReqVO createReqVO) {
return success(planService.createPlan(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新排单")
@PreAuthorize("@ss.hasPermission('executor:plan:update')")
public CommonResult<Boolean> updatePlan(@Valid @RequestBody PlanSaveReqVO updateReqVO) {
public CommonResult<Boolean> updatePlan(@Validated(UpdateGroup.class) @RequestBody PlanSaveReqVO updateReqVO) {
planService.updatePlan(updateReqVO);
return success(true);
}
@@ -63,6 +66,7 @@ public class PlanController {
return success(planService.cancellation(id));
}
@GetMapping("/get")
@Operation(summary = "获得排单")
@Parameter(name = "id", description = "排单id", required = true, example = "1024")
@@ -94,17 +98,24 @@ public class PlanController {
return success(BeanUtils.toBean(pageResult, PlanRespVO.class));
}
@PostMapping("/setSort")
@Operation(summary = "设置排单优先级")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
public CommonResult<Boolean> setSort(@Valid @NotEmpty(message = "参数不能空") @RequestBody List<SortVO> list) {
return success(planService.setSort(list));
}
@GetMapping("getNotPlanOrderListPage")
@Operation(summary = "获取未排单的板材生产单板材分页列表")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
public CommonResult<PageResult<OrderRespVOCopy>> getOrderPage(@Valid OrderPageReqVOCopy pageReqVO) {
public CommonResult<List<OrderRespVOCopy>> getOrderPage(@Valid OrderPageReqVOCopy pageReqVO) {
return success(planService.getOrderPage(pageReqVO));
}
@GetMapping("getNotPlanPlateListPage")
@Operation(summary = "获取未排单的板材分页列表")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
public CommonResult<PageResult<PlatePage>> getNotPlanPlateListPage(@Valid PlateReqPageVO pageVO) {
public CommonResult<List<PlatePage>> getNotPlanPlateListPage(@Valid PlateReqPageVO pageVO) {
return success(planService.getNotPlanPlateListPage(pageVO));
}
@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static com.cf.imes.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
@@ -44,6 +45,10 @@ public class OrderRespVOCopy {
private String goodsId;
@Schema(description = "商品名称")
private String goodsName;
@Schema(description = "订单对应的板件的信息")
private List<PlatePage> platePages;
@Schema(description = "颜色")
private String color;
@Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板")
@@ -1,8 +1,10 @@
package com.cf.imes.module.executor.controller.admin.plan.vo;
import com.cf.imes.framework.es.core.valid.CreateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.Valid;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@@ -14,23 +16,23 @@ public class PlanSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12776")
private Long id;
@Schema(description = "排单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String planNo;
/*@Schema(description = "排单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String planNo;*/
@Schema(description = "排序优先级", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "排序优先级不能为空")
private Integer sort;
//@NotNull(groups = CreateGroup.class,message = "排序优先级不能为空")
private Long sort;
@Schema(description = "排单类型:1 混单排单,2 生产单排单", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "排单类型:1 混单排单,2 生产单排单不能为空")
@NotNull(message = "排单类型:1 混单排单,2 生产单排单不能为空", groups = CreateGroup.class)
private Integer type;
@Schema(description = "排单状态:0 新单,1 板材已申请,2 开料中,3 已开料", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "排单状态:0 新单,1 板材已申请,2 开料中,3 已开料不能为空")
@NotNull(message = "排单状态:0 新单,1 板材已申请,2 开料中,3 已开料不能为空", groups = CreateGroup.class)
private Integer status;
@Schema(description = "是否支付:0 否,1 是", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "是否支付:0 否,1 是不能为空")
//@NotNull(message = "是否支付:0 否,1 是不能为空")
private Boolean isPay;
@Schema(description = "机台 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16707")
@@ -38,23 +40,37 @@ public class PlanSaveReqVO {
private Long machineId;
@Schema(description = "计划时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "计划时间不能为空")
@NotNull(message = "计划时间不能为空", groups = CreateGroup.class)
private LocalDateTime planTime;
/*@Schema(description = "生产单id列表", requiredMode = Schema.RequiredMode.REQUIRED)
private List<Long> orderIds;*/
@Schema(description = "板件id列表")
private List<Long> plateIds;
/*@Schema(description = "板件id列表")
private List<Long> plateIds;*/
@Schema(description = "生产单id与商品id 列表")
private List<Item> itemList;
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
private String remark;
@Schema(description = "生产操作人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "生产操作人不能为空")
@NotEmpty(message = "生产操作人不能为空", groups = CreateGroup.class)
private String operator;
@Schema(description = "生产时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "生产时间不能为空")
@NotNull(message = "生产时间不能为空", groups = CreateGroup.class)
private LocalDateTime produceTime;
@Valid
@Data
public static class Item {
@Schema(description = "生产单id")
@NotNull
private Long orderId;
@Schema(description = "商品id")
@NotNull
private Long goodsId;
}
}
@@ -0,0 +1,23 @@
package com.cf.imes.module.executor.controller.admin.plan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @author Beal
*/
@Data
@Valid
public class SortVO {
@Schema(description = "排单id")
@NotNull(message = "排单id 不能空")
private Long planId;
@Schema(description = "排序")
@NotNull(message = "排序不能空")
private Long sort;
}
@@ -119,4 +119,11 @@ public class PlateController {
return success(plateService.getPlateModelByPlateId(bodyIds));
}
@GetMapping("/selectPlate")
@Operation(summary = "查看工序对应的板件信息")
public CommonResult<List<BodyPlateDetailVO> > selectPlate(@Valid ProcessPlateReqVO reqVO){
return success(plateService.selectPlate(reqVO));
}
}
@@ -0,0 +1,31 @@
package com.cf.imes.module.executor.controller.admin.plate.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
@Schema(description = "管理后台 - 查询板件")
@Data
@ToString(callSuper = true)
public class ProcessPlateReqVO {
@Schema(description = "工序类型",requiredMode = Schema.RequiredMode.REQUIRED)
private Long processType;
@Schema(description = "生产单号",requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderId;
@Schema(description = "工序明细ID",requiredMode = Schema.RequiredMode.REQUIRED)
private Long stepItemId;
@Schema(description = "柜体ID")
private Long bodyId;
}
@@ -36,7 +36,7 @@ public class PlanDO extends BaseDO {
/**
* 排序优先级
*/
private Integer sort;
private Long sort;
/**
* 排单类型:1 混单排单,2 生产单排单
*/
@@ -0,0 +1,44 @@
package com.cf.imes.module.executor.dal.dataobject.processStepItem;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
@TableName(value = "order_process_step_item", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderProcessStepItemDO {
@TableId
private Long id;
// 工序项目名
private String name;
// 生产单工序 id
private Long orderProcessId;
// 工序状态
private Boolean status;
// 工序步骤 id
private Long processStepId;
// 工序组名
private String groupName;
// 柜体 ID
private Long bodyId;
// 加工组 ID
private Long groupId;
}
@@ -49,7 +49,7 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
}
IPage<OrderRespVOCopy> selectOrderPage(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
List<OrderRespVOCopy> selectOrderPage(/*@Param("page") IPage page,*/ @Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
default List<OrderDO> selectOrderCheck(OrderPageReqVO reqVO) {
MPJLambdaWrapper<OrderDO> wrapper = new MPJLambdaWrapper<OrderDO>()
@@ -1,6 +1,7 @@
package com.cf.imes.module.executor.dal.mysql.orderItem;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO;
import org.apache.ibatis.annotations.Mapper;
@@ -18,4 +19,11 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
List<OrderItemDO> selectExtraById(@Param("orderId")Long orderId, @Param("roomId")Long roomId , @Param("bodyId")Long bodyId);
default List<OrderItemDO> selectByOrderId(Long orderId) {
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eqIfPresent(OrderItemDO::getOrderId,orderId));
}
}
@@ -10,6 +10,7 @@ import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlanSaveReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateParam;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList;
@@ -64,7 +65,8 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
.orderByDesc(PlateDO::getId));
}
IPage<PlatePage> selectPlatePage(@Param("page") IPage<PlatePage> page, @Param("orderId")Long organId, @Param("goodsId") String goodsId);
// IPage<PlatePage> selectPlatePage(@Param("page") IPage<PlatePage> page, @Param("orderId")Long organId, @Param("goodsId") String goodsId);
List<PlatePage> selectPlatePage(/*@Param("page") IPage<PlatePage> page,*/ @Param("orderId")Long organId, @Param("goodsId") String goodsId);
IPage<PlateResList> selectPlateByPlanId(@Param("page") IPage<PlateResList> page, @Param(Constants.WRAPPER) Wrapper<PlateDO> wrapper);
@@ -88,4 +90,6 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
}
IPage<PlateRespVO> selectProductList(@Param("page") IPage<PlateRespVO> page , @Param("orderId")Long orderId, @Param("roomId")Long roomId , @Param("bodyId")Long bodyId);
Set<Long> selectBatchOrderIdsAndGoodsIds(@Param("itemList") List<PlanSaveReqVO.Item> itemList);
}
@@ -0,0 +1,19 @@
package com.cf.imes.module.executor.dal.mysql.processStepItem;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.executor.dal.dataobject.processStepItem.OrderProcessStepItemDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface ProcessStepItemMapper extends BaseMapperX<OrderProcessStepItemDO> {
default List<OrderProcessStepItemDO> selectBodyIds(Long stepItemId) {
return selectList(new LambdaQueryWrapperX<OrderProcessStepItemDO>()
.eqIfPresent(OrderProcessStepItemDO::getId,stepItemId));
}
}
@@ -53,9 +53,9 @@ public interface PlanService {
*/
PageResult<PlanRespVO> getPlanPage(PlanPageReqVO pageReqVO);
PageResult<OrderRespVOCopy> getOrderPage(OrderPageReqVOCopy pageReqVO);
List<OrderRespVOCopy> getOrderPage(OrderPageReqVOCopy pageReqVO);
PageResult<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO);
List<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO);
Boolean addPlate(AddPlateReq req);
@@ -66,4 +66,6 @@ public interface PlanService {
PageResult<OrderRespVO> getOrderByPlanId(PlanOrderPageReqVO pageReqVO);
PageResult<PlanGoodsVO> getNotPlanGoodsListPageByOrderId( NotPlanGoodsListPageVO pageVO);
Boolean setSort(List<SortVO> list);
}
@@ -2,6 +2,7 @@ package com.cf.imes.module.executor.service.plan;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
@@ -84,11 +85,18 @@ public class PlanServiceImpl implements PlanService {
@Resource
private OrderBodyMapper orderBodyMapper;
@Resource
private IdentifierGenerator identifierGenerator;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createPlan(PlanSaveReqVO createReqVO) {
// 插入
long sort = System.currentTimeMillis();
PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class);
plan.setIsPay(Boolean.FALSE);
plan.setSort(sort);
plan.setPlanNo(identifierGenerator.nextId(null).toString());
planMapper.insert(plan);
Long planId = plan.getId();
/* List<Long> orderIds = createReqVO.getOrderIds();
@@ -102,7 +110,10 @@ public class PlanServiceImpl implements PlanService {
}
planOrderMapper.insertBatch(planOrderDOS);
}*/
List<Long> plateIds = createReqVO.getPlateIds();
//List<Long> plateIds = createReqVO.getPlateIds();
List<PlanSaveReqVO.Item> itemList = createReqVO.getItemList();
Set<Long> plateIds = plateMapper.selectBatchOrderIdsAndGoodsIds(itemList);
if (CollectionUtil.isNotEmpty(plateIds)) {
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
for (Long plateId : plateIds) {
@@ -124,11 +135,11 @@ public class PlanServiceImpl implements PlanService {
validatePlanExists(updateReqVO.getId());
// 更新
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
plan.setIsPay(Boolean.FALSE);
planMapper.updateById(plan);
Long planId = plan.getId();
/*planOrderMapper.delete(new LambdaQueryWrapperX<PlanOrderDO>().eq(PlanOrderDO::getPlanId, planId));*/
planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().eq(PlanItemDO::getPlanId, planId));
/* List<Long> orderIds = updateReqVO.getOrderIds();
if (CollectionUtil.isNotEmpty(orderIds)) {
@@ -141,6 +152,7 @@ public class PlanServiceImpl implements PlanService {
}
planOrderMapper.insertBatch(planOrderDOS);
}*/
/* planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().eq(PlanItemDO::getPlanId, planId));
List<Long> plateIds = updateReqVO.getPlateIds();
if (CollectionUtil.isNotEmpty(plateIds)) {
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
@@ -151,7 +163,7 @@ public class PlanServiceImpl implements PlanService {
.build());
}
planItemMapper.insertBatch(planItemDOS);
}
}*/
}
@@ -242,8 +254,8 @@ public class PlanServiceImpl implements PlanService {
}
@Override
public PageResult<OrderRespVOCopy> getOrderPage(OrderPageReqVOCopy pageReqVO) {
PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
public List<OrderRespVOCopy> getOrderPage(OrderPageReqVOCopy pageReqVO) {
// PageDTO<OrderRespVOCopy> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
queryWrapperX
@@ -273,18 +285,30 @@ public class PlanServiceImpl implements PlanService {
queryWrapperX.inIfPresent("op.filter_type", filterTypes);
IPage<OrderRespVOCopy> orderDOPageResult = orderMapper.selectOrderPage(page, queryWrapperX);
if (CollectionUtil.isEmpty(orderDOPageResult.getRecords())) {
return new PageResult<>();
List<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(queryWrapperX);
for (OrderRespVOCopy orderRespVOCopy : orderRespVOCopies) {
List<PlatePage> platePages = plateMapper.selectPlatePage(orderRespVOCopy.getOrderId(), orderRespVOCopy.getGoodsId());
orderRespVOCopy.setPlatePages(platePages);
}
return new PageResult<>(orderDOPageResult.getRecords(), orderDOPageResult.getTotal());
return orderRespVOCopies;
// IPage<OrderRespVOCopy> orderDOPageResult = orderMapper.selectOrderPage(queryWrapperX);
// if (CollectionUtil.isEmpty(orderDOPageResult.getRecords())) {
// return new PageResult<>();
// }
// return new PageResult<>(orderDOPageResult.getRecords(), orderDOPageResult.getTotal());
}
@Override
public PageResult<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO) {
PageDTO<PlatePage> page = new PageDTO<>(pageVO.getPageNo(), pageVO.getPageSize());
IPage<PlatePage> pageRes = plateMapper.selectPlatePage(page, pageVO.getOrderId(), pageVO.getGoodsId());
return new PageResult<PlatePage>(pageRes.getRecords(), pageRes.getTotal());
public List<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO) {
// PageDTO<PlatePage> page = new PageDTO<>(pageVO.getPageNo(), pageVO.getPageSize());
List<PlatePage> pageRes = plateMapper.selectPlatePage(/*page, */pageVO.getOrderId(), pageVO.getGoodsId());
return pageRes;
}
@Override
@@ -399,4 +423,18 @@ public class PlanServiceImpl implements PlanService {
);
}
@Override
public Boolean setSort(List<SortVO> list) {
ArrayList<PlanDO> planDOS = new ArrayList<>();
list.forEach(e->{
planDOS.add(PlanDO.builder()
.id(e.getPlanId())
.sort(e.getSort())
.build());
});
planMapper.updateBatch(planDOS);
return Boolean.TRUE;
}
}
@@ -90,4 +90,7 @@ public interface PlateService {
void updatePlateByRawGoodsId(List<GoodsSaveReqVO> createReqVOS);
List<BodyPlateDetailVO> getPlateModelByPlateId(List<Long> bodyIds);
// 查看工序对应的板件信息
List<BodyPlateDetailVO> selectPlate(ProcessPlateReqVO reqVO);
}
@@ -18,7 +18,9 @@ import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO;
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.processStepItem.OrderProcessStepItemDO;
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
import com.cf.imes.module.executor.dal.mysql.processStepItem.ProcessStepItemMapper;
import com.cf.imes.module.executor.util.RandomUtils;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import lombok.SneakyThrows;
@@ -65,6 +67,9 @@ public class PlateServiceImpl implements PlateService {
@Resource
private ElasticsearchClient elasticsearchClient;
@Resource
private ProcessStepItemMapper processStepItemMapper;
@Override
public Long createPlate(PlateSaveReqVO createReqVO) {
// 插入
@@ -189,6 +194,28 @@ public class PlateServiceImpl implements PlateService {
}
// 查看工序对应的板件信息
@Override
public List<BodyPlateDetailVO> selectPlate(ProcessPlateReqVO reqVO) {
if(reqVO.getProcessType() == 7){
// 等于 7(组件加工) ,根据明细ID查询对应的柜体ID,再传入方法查询对应的板材信息
List<OrderProcessStepItemDO> orderProcessStepItemNDOS = processStepItemMapper.selectBodyIds(reqVO.getStepItemId());
List<Long> bodyIds = orderProcessStepItemNDOS.stream().map(item -> item.getBodyId()).collect(Collectors.toList());
return getPlateModelByPlateId(bodyIds);
}
// 不等于 7(组件加工) ,直接根据订单号查询所有的柜体id,再传入方法查询对应的板材信息
List<OrderItemDO> orderItemDOS = orderItemMapper.selectByOrderId(reqVO.getOrderId());
List<Long> bodyIds = orderItemDOS.stream().map(item -> item.getBodyId()).collect(Collectors.toList());
return getPlateModelByPlateId(bodyIds);
}
private List<OrderModelDO> buildRespByPlateIds(Collection<Long> plateIds, String index) {
List<FieldValue> fieldValues = plateIds.stream().map(FieldValue::of).toList();
SearchRequest.Builder builder = new SearchRequest.Builder();
@@ -2,24 +2,43 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.executor.dal.mysql.plate.PlateMapper">
<select id="selectPlatePage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage">
<!-- select a.id as plateId, a.name, a.width, a.height, a.thickness, a.area,-->
<!-- b.custom_order_no, b.customer, b.address, b.remark, b.id as orderId,-->
<!-- c.goods_name, c.material, c.color, c.goods_id-->
<!-- from order_plate a-->
<!-- LEFT JOIN order_plan_item p on a.id = p.item_id-->
<!-- LEFT JOIN order_item oi on p.item_id = oi.id-->
<!-- LEFT JOIN `order` b on oi.order_id = b.id-->
<!-- LEFT JOIN order_goods c on a.order_id = c.order_id-->
<!-- <where>-->
<!-- p.id is null-->
<!-- and a.is_cancel = 0-->
<!-- <if test="orderId !=null">-->
<!-- and a.order_id = #{orderId}-->
<!-- </if>-->
<!-- <if test="goodsId !=null and goodsId != '' ">-->
<!-- and c.goods_id = #{goodsId}-->
<!-- </if>-->
<!-- </where>-->
select a.id as plateId, a.name, a.width, a.height, a.thickness, a.area,
b.custom_order_no, b.customer, b.address, b.remark, b.id as orderId,
c.goods_name, c.material, c.color, c.goods_id
from order_plate a
LEFT JOIN order_plan_item p on a.id = p.item_id
LEFT JOIN order_item oi on p.item_id = oi.id
LEFT JOIN `order` b on oi.order_id = b.id
LEFT JOIN order_goods c on a.order_id = c.order_id
<where>
p.id is null
and a.is_cancel = 0
<if test="orderId !=null">
and a.order_id = #{orderId}
</if>
<if test="goodsId !=null and goodsId != '' ">
and c.id = #{goodsId}
</if>
</where>
-- LEFT JOIN order_item oi on a.order_id = oi.order_id
LEFT JOIN `order` b on a.order_id = b.id
LEFT JOIN order_goods c on a.goods_id = c.goods_id
<where>
a.is_cancel = 0
<if test="orderId !=null">
and a.order_id = #{orderId}
</if>
<if test="goodsId !=null and goodsId != '' ">
and c.goods_id = #{goodsId}
</if>
</where>
</select>
<select id="selectPlateByPlanId"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList">
@@ -55,4 +74,12 @@
AND (#{bodyId} IS NULL OR b.body_id = #{bodyId})
GROUP BY a.id, c.material, c.color;
</select>
<select id="selectBatchOrderIdsAndGoodsIds" resultType="java.lang.Long">
select id from order_plate
where ( order_id, goods_id ) in
<foreach collection="itemList" item="item" open="(" close=")" separator=",">
(#{item.orderId},#{item.goodsId})
</foreach>
</select>
</mapper>