diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java index 34650b42c..fdac20122 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java @@ -64,14 +64,6 @@ public class PlanController { return success(planService.deletePlan(ids)); } -// @DeleteMapping("cancellation") -// @Operation(summary = "作废") -// @Parameter(name = "id", description = "排单id", required = true) -// @PreAuthorize("@ss.hasPermission('executor:plan:delete')") - public CommonResult cancellation(@RequestParam("id") Long id) { - return success(planService.cancellation(id)); - } - @GetMapping("/get") @Operation(summary = "获得排单") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/saveOptimize/PrintOrderPackReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/saveOptimize/PrintOrderPackReqVO.java index 94a8e74b8..97b601ae3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/saveOptimize/PrintOrderPackReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/saveOptimize/PrintOrderPackReqVO.java @@ -4,6 +4,8 @@ package com.cf.imes.module.executor.controller.admin.plan.saveOptimize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + @Schema(description = "管理后台 - 生产单包裹信息") @Data public class PrintOrderPackReqVO { @@ -14,7 +16,7 @@ public class PrintOrderPackReqVO { @Schema(description = "板材ID") - private Long plateId; + private List plateId; @Schema(description = "包裹编号") @@ -26,7 +28,7 @@ public class PrintOrderPackReqVO { @Schema(description = "包裹数量") - private Long packNum; + private Integer packNum; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java index efc83d2d5..741b8d0e6 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java @@ -182,4 +182,9 @@ public interface GoodsMapper extends BaseMapperX { IPage selectPlanGoodsListByPlanId(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper); + + List selectGoodsAndRemainPlate(@Param("ids") List ids,@Param("organId") Long organId); + + + IPage selectNoPlanOrderList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper); } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java index c3aafb300..8c7286e32 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java @@ -108,15 +108,6 @@ public interface OrderItemMapper extends BaseMapperX { IPage selectTestNum(@Param("page") IPage page,@Param("organId") Long organId); - - default List selectOrderPlateList(List plateIds, Long organId) { - return selectList(new LambdaQueryWrapperX() - .eq(OrderItemDO::getOrganId,organId) - .inIfPresent(OrderItemDO::getPlateId, plateIds) - .select(OrderItemDO::getBodyId,OrderItemDO::getRoomId,OrderItemDO::getGroupId,OrderItemDO::getPlateId)); - - } - - + List selectOrderPlateList(@Param("orderId") Long orderId,@Param("organId") Long organId); } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index 97957e57e..0c4754514 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -468,13 +468,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { OrderSource orderSource = new OrderSource(); -// List goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX() -// .eq(GoodsDO::getOrderId, orderId) -// ); - List goodsDOS = goodsMapper.selectGoodsList(orderId,getUserOrganId()); -// PlanDO planDO = planMapper.selectByOrderId(orderId); List plateDOS = plateMapper.selectPlateDetialList(orderId,getUserOrganId()); @@ -493,14 +488,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } -// for (PlateDetialRespVO plateDetailsRespVO : plateDOS) { -// for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) { -// plateDetailsRespVO.setProcessGroupName(groupNameList.getGroupName()); -// } -// -// } - - // 造型数据的尺寸长度 Integer orderModelSize = plateDOS.size(); @@ -515,13 +502,29 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { List optimizeBoardModelDOS = buildBoardByOrderId(orderId, ORDER_REMAIN_PLATE_MODEL, boardSize); + // 查询生产单对应的配件信息 + List printOrderPartsRespVOS = orderPartsMapper.selectPartList(Collections.singletonList(orderId), getUserOrganId()); + + + // 查询生产单对应的包裹信息 + List printOrderPackReqVOS = orderItemMapper.selectOrderPlateList(orderId, getUserOrganId()); + + + // 统计每个订单的包装数量 + printOrderPackReqVOS + .stream() + .filter(f->f + .getOrderId().equals(orderId)) + .forEach(f->f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size())); + -// orderSource.setPlan(planDO); orderSource.setOrderList(Collections.singletonList(orderDO)); orderSource.setPlateList(plateDOS); orderSource.setGoodsList(goodsDOS); orderSource.setPlateModels(orderModelDOS); orderSource.setOptimizeBoardModelDOS(optimizeBoardModelDOS); + orderSource.setOrderPartsRespVOS(printOrderPartsRespVOS); + orderSource.setOrderPackReqVOS(printOrderPackReqVOS); return orderSource; } @@ -547,27 +550,27 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { List plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId()); - List bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList(); - - - List orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds, getUserOrganId()); - - - List detialRespVOS = new ArrayList<>(); - - - for (OrderBodyDO orderBodyDO : orderBodyDOS) { - - detialRespVOS.addAll(plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).peek(m -> { - m.setBodyName(orderBodyDO.getName()); - m.setRoomName(orderBodyDO.getRoomName()); - }).toList()); - - } +// List bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList(); +// +// +// List orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds,orderIds, getUserOrganId()); +// +// +//// List detialRespVOS = new ArrayList<>(); +// +// +// for (OrderBodyDO orderBodyDO : orderBodyDOS) { +// +// plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).forEach(m -> { +// m.setBodyName(orderBodyDO.getName()); +// m.setRoomName(orderBodyDO.getRoomName()); +// }); +// +// } - for (PlateDetialRespVO plateDetailsRespVO : detialRespVOS) { + for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) { String name = ""; if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) { for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) { @@ -579,17 +582,17 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } plateDetailsRespVO.setProcessGroupName(name); - plateDetailsRespVO.setGoodsId(goodsDOS - .stream() - .filter(f->f.getId().equals(plateDetailsRespVO.getId())) - .map(GoodsReqVO::getGoodsId) - .findAny().orElse(null)); +// plateDetailsRespVO.setGoodsId(goodsDOS +// .stream() +// .filter(f->f.getId().equals(plateDetailsRespVO.getId())) +// .map(GoodsReqVO::getGoodsId) +// .findAny().orElse(null)); - plateDetailsRespVO.setGoodsName(goodsDOS - .stream() - .filter(f->f.getId().equals(plateDetailsRespVO.getId())) - .map(GoodsReqVO::getGoodsName) - .findAny().orElse(null)); +// plateDetailsRespVO.setGoodsName(goodsDOS +// .stream() +// .filter(f->f.getId().equals(plateDetailsRespVO.getId())) +// .map(GoodsReqVO::getGoodsName) +// .findAny().orElse(null)); } @@ -599,7 +602,10 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { // 造型数据的尺寸长度 Integer orderModelSize = plateDetialRespVOS.size(); - List orderModelDOS = buildRespByOrderIds(orderIds, ORDER_PLATE_MODEL, orderModelSize); + // 需要查询小板造型信息的板材ID + List plateIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getPlateId).toList(); + + List orderModelDOS = buildRespByPlateIds(plateIds, orderModelSize); // 大板数据的尺寸长度 @@ -617,7 +623,18 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { List printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId()); // 查询生产单对应的包裹信息 - List printOrderPackReqVOS = orderItemMapper.selectPackList(orderIds, getUserOrganId()); + List printOrderPackReqVOS = orderItemMapper.selectPackList(ids, getUserOrganId()); + + for (Long orderId : orderIds) { + + // 统计每个订单的包装数量 + printOrderPackReqVOS + .stream() + .filter(f->f.getOrderId().equals(orderId)) + .forEach(f->f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size())); + + } + return OrderSource.builder() .orderList(orderDOS) @@ -635,24 +652,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { public OrderSource getOrderSourceByGoodId(List ids) { -// PlanDO planDO = planMapper.selectById(planId); -// if (Objects.isNull(planDO)) { -// throw exception(PLAN_NOT_EXISTS); -// } - - -// List goodsDOS = goodsMapper.selectBatchIds(goodIds); - - List goodsReqVOS = goodsMapper.selectJoinList(GoodsReqVO.class, new MPJLambdaWrapperX() - - .leftJoin(RemainPlateDO.class, RemainPlateDO::getGoodsId, GoodsDO::getId) - .selectAll(GoodsDO.class) - .selectAs(RemainPlateDO::getId,"remainId") - .isNotNull(PlanItemDO::getId) - .eq(GoodsDO::getOrganId, getUserOrganId()) - .in(GoodsDO::getId, ids)); - + List goodsReqVOS = goodsMapper.selectGoodsAndRemainPlate(ids, getUserOrganId()); List orderIds = goodsReqVOS.stream().map(GoodsReqVO::getOrderId).distinct().toList(); @@ -662,26 +663,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { List plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId()); - List bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList(); +// List bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList(); +// +// +// List orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds,orderIds, getUserOrganId()); +// +// +// for (OrderBodyDO orderBodyDO : orderBodyDOS) { +// +// plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).forEach(m -> { +// m.setBodyName(orderBodyDO.getName()); +// m.setRoomName(orderBodyDO.getRoomName()); +// }); +// +// } - List orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds, getUserOrganId()); - - - List detialRespVOS = new ArrayList<>(); - - - for (OrderBodyDO orderBodyDO : orderBodyDOS) { - - detialRespVOS.addAll(plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).peek(m -> { - m.setBodyName(orderBodyDO.getName()); - m.setRoomName(orderBodyDO.getRoomName()); - }).toList()); - - } - - - for (PlateDetialRespVO plateDetailsRespVO : detialRespVOS) { + for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) { String name = ""; if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) { for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) { @@ -694,25 +692,22 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { plateDetailsRespVO.setProcessGroupName(name); - plateDetailsRespVO.setGoodsId(goodsReqVOS - .stream() - .filter(f->f.getId().equals(plateDetailsRespVO.getId())) - .map(GoodsReqVO::getGoodsId) - .findAny().orElse(null)); +// // todo 这样写混单时同样适用,后面加混单后这里不用修改 +// plateDetailsRespVO.setGoodsId(goodsReqVOS +// .stream() +// .filter(f->f.getId().equals(plateDetailsRespVO.getId())) +// .map(GoodsReqVO::getGoodsId) +// .findAny().orElse(null)); } // 造型数据的尺寸长度 Integer orderModelSize = plateDetialRespVOS.size(); - List orderModelDOS = buildRespByOrderIds(orderIds, ORDER_PLATE_MODEL, orderModelSize); + // 需要查询的小板造型信息的板材ID + List plateIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getPlateId).toList(); - -// // 查询生产单对应的配件信息 -// List printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId()); -// -// // 查询生产单对应的包裹信息 -// List printOrderPackReqVOS = orderItemMapper.selectPackList(orderIds, getUserOrganId()); + List orderModelDOS = buildRespByPlateIds(plateIds, orderModelSize); return OrderSource.builder() .orderList(orderDOS) @@ -832,12 +827,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } - private List buildRespByOrderIds(Collection orderIds, String index, Integer size) { - List fieldValues = orderIds.stream().map(FieldValue::of).toList(); + private List buildRespByPlateIds(Collection plateIds, Integer size) { + List fieldValues = plateIds.stream().map(FieldValue::of).toList(); SearchRequest.Builder builder = new SearchRequest.Builder(); - builder.index(index); + builder.index(OptimizePlanService.ORDER_PLATE_MODEL); builder.size(size); - builder.query(q -> q.terms(b -> b.field("orderId").terms(e -> e.value(fieldValues)))); + builder.query(q -> q.terms(b -> b.field("plateId").terms(e -> e.value(fieldValues)))); try { SearchResponse search = elasticsearchClient.search(builder.build(), OrderModelDO.class); List> hits = search.hits().hits(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java index 4f13cf6c7..4fa8a8353 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java @@ -65,7 +65,6 @@ public interface PlanService { Boolean addPlate(AddPlateReq req); - Boolean cancellation(Long id); PageResult getPlateByPlanId(GetPlateByPlanIdVO vo); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index c7dcec725..881111b4c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -9,7 +9,6 @@ import co.elastic.clients.elasticsearch.core.SearchRequest; import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.elasticsearch.core.search.Hit; import com.alibaba.fastjson.JSON; -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.PageDTO; @@ -127,6 +126,7 @@ public class PlanServiceImpl implements PlanService { List goodsDOS = new ArrayList<>(); + // <大板实际ID,排单ID> Map goodsPlanId = new HashMap<>(); Map> groupedItems = itemList.stream() @@ -149,24 +149,12 @@ public class PlanServiceImpl implements PlanService { goodsPlanId.put(entry.getKey(), plan.getId()); -// Set itemIds = plateMapper.selectBatchOrderIdsAndGoodsIds(items,getUserOrganId()); - List goodsIds = items.stream().map(PlanSaveReqVO.Item::getId).toList(); List goodsDOList = goodsMapper.selectPlanGoodsList(goodsIds, getUserOrganId()).stream().map(m -> m.setPlanId(plan.getId())).toList(); goodsDOS.addAll(goodsDOList); -// if (CollectionUtil.isNotEmpty(itemIds)) { -// -// for (Long itemId : itemIds) { -// planItemDOS.add(PlanItemDO.builder() -// .planId(plan.getId()) -// .itemId(itemId) -// .build()); -// } -// -// } } @@ -179,29 +167,6 @@ public class PlanServiceImpl implements PlanService { return goodsPlanId; -// -// // 插入 -// PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class); -// plan.setSort(0L); -// String orderNos = itemList.stream().map(PlanSaveReqVO.Item::getOrderId).distinct().toList().toString(); -// plan.setOrderNos(orderNos); -// plan.setProduceTime(null); -// planMapper.insert(plan); -// -// // 修改对应的生产单的状态为 已排单 -// List orderIds = itemList.stream().map(PlanSaveReqVO.Item::getOrderId).toList(); -// -// List orderDOS = orderMapper.selectBatchIds(orderIds); -// -// List orderDOList = orderDOS.stream().map(o -> o.setStatus(OrderStatusEnum.SORTED.getStatus())).toList(); -// -// orderMapper.updateBatch(orderDOList); -// -// Long planId = plan.getId(); -// -// -// // 返回 -// return plan.getId(); } @Override @@ -224,7 +189,7 @@ public class PlanServiceImpl implements PlanService { // todo 目前只解决非混单的情况 Long goodsIds = BeanUtils.toBean(goodsMapper.selectPlanGoods(plan.getId(), getUserOrganId()).stream().map(GoodsDO::getGoodsId).toList(), Long.class).get(0); - if(goodsId.equals(goodsIds)){ + if(!goodsId.equals(goodsIds)){ throw exception(PLATE_ERROR); } @@ -238,7 +203,7 @@ public class PlanServiceImpl implements PlanService { if (!updateReqVO.getDeleteIds().isEmpty()){ - goodsDOS.addAll(goodsMapper.selectPlanGoodsList(ids, getUserOrganId()).stream().map(m -> m.setPlanId(null)).toList()); + goodsDOS.addAll(goodsMapper.selectPlanGoodsList(updateReqVO.getDeleteIds(), getUserOrganId()).stream().map(m -> m.setPlanId(null)).toList()); } @@ -252,8 +217,8 @@ public class PlanServiceImpl implements PlanService { planMapper.updateById(plan); -// -// // todo 目前只解决非混单的情况,混单的情况待解决,这个逻辑目前应该不用,排单是否开料判断了,可保留,万一以后需求更改 + +// // todo 目前只解决非混单的情况,混单的情况待解决,这个逻辑目前应该不用(这个逻辑用于判断大板下的小板是否开料,后期应该可用于混单时增加的判断),排单是否开料判断了,可保留,万一以后需求更改 // if(!updateReqVO.getItemList().isEmpty()){ // // List optimizeBoardModelDOS = buildBoardByPlanId(plan.getId(), ORDER_REMAIN_PLATE_MODEL, 10); @@ -354,11 +319,6 @@ public class PlanServiceImpl implements PlanService { } - // 目前生产单的状态已经去除待排单,所以无需修改生产单的状态 -// List orderDOS = orderMapper.selectBatchIds(orderIds).stream().map(m -> m.setStatus(OrderStatusEnum.SORTED.getStatus())).collect(Collectors.toList()); -// orderMapper.updateBatch(orderDOS); - - // 删除排单对应的优化生产数据 deleteByPlanId(ids, ORDER_REMAIN_PLATE_MODEL); @@ -402,7 +362,7 @@ public class PlanServiceImpl implements PlanService { throw exception(PLAN_NOT_EXISTS); } - if(planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) && planDO.getMachineId().equals(machineId)){ + if(planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){ throw exception(LIST_CHANGES_ARE_PROHIBITED); } } @@ -972,24 +932,6 @@ public class PlanServiceImpl implements PlanService { return Boolean.TRUE; } - @Override - @Transactional(rollbackFor = Exception.class) - public Boolean cancellation(Long id) { - PlanDO planDO = planMapper.selectById(id); - if (planDO == null) { - throw exception(PLAN_NOT_EXISTS); - } -// if (planDO.getStatus().equals(PlanStatusEnum.NEWORDER.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.BOARDHASBEENAPPLIEDFOR.getStatus())) { -// throw exception(PLAN_NOT_ALLOW_CANCEL); -// } - Set itemIds = planItemMapper.selectList(new LambdaQueryWrapperX() - .eq(PlanItemDO::getOrganId,getUserOrganId()) - .eq(PlanItemDO::getPlanId, id)) - .stream().map(PlanItemDO::getItemId) - .collect(Collectors.toSet()); - plateMapper.update(new LambdaUpdateWrapper().in(PlateDO::getId, itemIds).set(PlateDO::getIsCancel, Boolean.TRUE)); - return Boolean.TRUE; - } @Override public PageResult getPlateByPlanId(GetPlateByPlanIdVO vo) { diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml index 8afc79103..8745eb8b5 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml @@ -297,4 +297,38 @@ + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml index e1269539b..d9e67013f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml @@ -173,35 +173,42 @@ - + + + + + + + + + + @@ -258,20 +265,6 @@ - - - - - - - - - - - - - - + + + select distinct op.id as plateId, + op.order_id as orderId, + o.id as packId, + o.package_no as packNo + from order_plate op + left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id + left join order_package o on oi.organ_id = o.organ_id and oi.order_id = o.order_id and oi.package_id = o.id + + where op.organ_id = #{organId} + and op.deleted = false + and op.order_id = #{orderId} + and oi.parts_id = 0 + and oi.package_id !=0 + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml index 10a1fd005..faf6a1d0a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml @@ -101,11 +101,12 @@ op.name, op.order_id from order_parts op - join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id - join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id - where op.organ_id = #{organId} - and op.order_id in + left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.parts_id + left join order_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id + where op.organ_id = #{organId} + and op.deleted = false + and op.order_id in #{orderIds} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index 35437ea15..3f2dc28de 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -231,11 +231,12 @@ op.is_row_hole as hasHole from order_plate op - join order_goods ogs on op.goods_id = ogs.id and op.organ_id = ogs.organ_id - join order_item oi on op.id = oi.plate_id and op.organ_id = oi.organ_id - join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id - left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id - where op.order_id =#{orderId} and op.organ_id = #{organId} and op.deleted = false + left join order_goods ogs on op.organ_id = ogs.organ_id and op.order_id = ogs.order_id and op.goods_id = ogs.id + left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id + left join order_group og on oi.organ_id = og.organ_id and oi.order_id = og.order_id and oi.group_id = og.id + left join order_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id + + where op.organ_id = #{organId} and op.deleted = false and op.order_id = #{orderId}