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

This commit is contained in:
lym
2024-09-10 15:47:58 +08:00
65 changed files with 1128 additions and 748 deletions
@@ -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<Boolean> cancellation(@RequestParam("id") Long id) {
return success(planService.cancellation(id));
}
@GetMapping("/get")
@Operation(summary = "获得排单")
@@ -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<Long> plateId;
@Schema(description = "包裹编号")
@@ -26,7 +28,7 @@ public class PrintOrderPackReqVO {
@Schema(description = "包裹数量")
private Long packNum;
private Integer packNum;
@@ -8,6 +8,7 @@ import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsPageReqVO;
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
@@ -82,16 +83,6 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
IPage<OrderGoodsResp> selectGoods(@Param("page") IPage page, @Param("goodsIds") List<Long> goodsIds, @Param("organId") Long organId);
// default GoodsDO selectId(Long orderId, Long goodsId, Long organId) {
// return selectOne(new LambdaQueryWrapperX<GoodsDO>()
// }
// default List<GoodsDO> selectGoodsPlateList(List<Long> goodIds, Long organId) {
// return selectList(new LambdaQueryWrapperX<GoodsDO>()
// .eq(GoodsDO::getOrganId, organId)
// .inIfPresent(GoodsDO::getOrderId, goodIds)
// .select(GoodsDO::getGoodsId,GoodsDO::getGoodsName, GoodsDO::getMaterial, GoodsDO::getColor, GoodsDO::getTexture,GoodsDO::getThickness, GoodsDO::getSpec));
// }
List<NotPlanGoodsRespVO> selectGoodsPlateList(@Param("goodIds") List<Long> goodIds,@Param("organId") Long organId);
@@ -182,4 +173,35 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
IPage<PlateResList> selectPlanGoodsListByPlanId(@Param("page") IPage<PlateResList> page, @Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
List<GoodsReqVO> selectGoodsAndRemainPlate(@Param("ids") List<Long> ids,@Param("organId") Long organId);
IPage<OrderRespVOCopy> selectNoPlanOrderList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
default int deletePlanGoods(List<Long> ids, Long organId) {
return update(new LambdaUpdateWrapper<GoodsDO>()
.set(GoodsDO::getPlanId, 0)
.eq(GoodsDO::getOrganId, organId)
.in(GoodsDO::getPlanId, ids));
}
default List<GoodsDO> selectPlanGoodsListByPlanIdList(List<Long> planIds, Long organId) {
return selectList(new LambdaQueryWrapperX<GoodsDO>()
.eq(GoodsDO::getOrganId, organId)
.eq(GoodsDO::getDeleted, false)
.in(GoodsDO::getPlanId,planIds)
.select(GoodsDO::getGoodsId,GoodsDO::getId,GoodsDO::getOrderId));
}
List<PlateResList> selectPlateListByPlanId(@Param("planIds") List<Long> planIds, @Param("organId") Long organId);
List<OrderRoomBodyList> selectNoPlanRoomBody(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
}
@@ -251,4 +251,14 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
List<OrderGoodsResp> selectGoodsListByGoodsId(@Param(Constants.WRAPPER) QueryWrapperX<OrderDO> queryWrapperX);
default List<OrderDO> selectNoPlanOrderList(Long organId, List<Integer> statusList) {
return selectList(new LambdaQueryWrapperX<OrderDO>()
.eqIfPresent(OrderDO::getOrganId, organId)
.eq(OrderDO::getDeleted, false)
.in(OrderDO::getStatus,statusList)
.select(OrderDO::getId));
}
}
@@ -131,10 +131,11 @@ public interface OrderBodyMapper extends BaseMapperX<OrderBodyDO> {
default List<OrderBodyDO> selectOrderBodyList(List<Long> bodyIds, Long organId) {
default List<OrderBodyDO> selectOrderBodyList(List<Long> bodyIds,List<Long> orderIds, Long organId) {
return selectList(new LambdaQueryWrapperX<OrderBodyDO>()
.eq(OrderBodyDO::getOrganId, organId)
.eq(OrderBodyDO::getDeleted,false)
.in(OrderBodyDO::getOrderId,orderIds)
.in(OrderBodyDO::getId, bodyIds)
.select(OrderBodyDO::getId,OrderBodyDO::getName,OrderBodyDO::getRoomName));
}
@@ -5,7 +5,6 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
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.plan.bo.OrderRoomBodyList;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailReqVO;
@@ -60,7 +59,7 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
void deleteByPlateId(@Param("deletePlateIds") List<Long> deletePlateIds);
List<PrintOrderPackReqVO> selectPackList(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
List<PrintOrderPackReqVO> selectPackList(@Param("ids") List<Long> ids, @Param("organId") Long organId);
default int deleteByBodyId(Long bodyId, Long organId) {
@@ -81,8 +80,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
}
List<OrderRoomBodyList> selectRoomBodyByOrderId( @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
default List<OrderItemDO> selectPlateIdList(List<Long> plateIds, Long organId) {
@@ -108,15 +105,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
IPage<OrderRespVOCopy> selectTestNum(@Param("page") IPage page,@Param("organId") Long organId);
default List<OrderItemDO> selectOrderPlateList(List<Long> plateIds, Long organId) {
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrganId,organId)
.inIfPresent(OrderItemDO::getPlateId, plateIds)
.select(OrderItemDO::getBodyId,OrderItemDO::getRoomId,OrderItemDO::getGroupId,OrderItemDO::getPlateId));
}
List<PrintOrderPackReqVO> selectOrderPlateList(@Param("orderId") Long orderId,@Param("organId") Long organId);
}
@@ -120,7 +120,6 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
List<Long> selectPlateIdListByBodyId(@Param("bodyId") Long bodyId, @Param("organId") Long organId);
List<PlateResList> selectPlateListByPlanId(@Param("planIds") List<Long> planIds, @Param("organId") Long organId);
// 根据需要删除的小板id查找具体信息
List<PlateGoodsIdVO> selectPlateGoodsListByList(@Param("plates") List<Long> goodsIdList, @Param("orderId") Long orderId, @Param("organId") Long organId);
@@ -62,5 +62,14 @@ public interface RemainPlateMapper extends BaseMapperX<RemainPlateDO> {
List<RemainPlateDO> selectTestSQL(@Param("filed") String filed,@Param("planId") Long planId,@Param("organId") Long organId);
default int deletePlanRemainPlate(List<Long> ids, Long organId) {
return update(new LambdaUpdateWrapper<RemainPlateDO>()
.set(RemainPlateDO::getPlanId, 0)
.eq(RemainPlateDO::getOrganId, organId)
.in(RemainPlateDO::getPlanId, ids));
}
// List<RemainPlateDO> selectTestSQL(@Param("sql") String sql);
}
@@ -468,13 +468,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
OrderSource orderSource = new OrderSource();
// List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>()
// .eq(GoodsDO::getOrderId, orderId)
// );
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsList(orderId,getUserOrganId());
// PlanDO planDO = planMapper.selectByOrderId(orderId);
List<PlateDetialRespVO> 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<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByOrderId(orderId, ORDER_REMAIN_PLATE_MODEL, boardSize);
// 查询生产单对应的配件信息
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(Collections.singletonList(orderId), getUserOrganId());
// 查询生产单对应的包裹信息
List<PrintOrderPackReqVO> 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<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
List<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds, getUserOrganId());
List<PlateDetialRespVO> 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<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
//
//
// List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds,orderIds, getUserOrganId());
//
//
//// List<PlateDetialRespVO> 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<OrderModelDO> orderModelDOS = buildRespByOrderIds(orderIds, ORDER_PLATE_MODEL, orderModelSize);
// 需要查询小板造型信息的板材ID
List<Long> plateIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getPlateId).toList();
List<OrderModelDO> orderModelDOS = buildRespByPlateIds(plateIds, orderModelSize);
// 大板数据的尺寸长度
@@ -617,7 +623,18 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
// 查询生产单对应的包裹信息
List<PrintOrderPackReqVO> printOrderPackReqVOS = orderItemMapper.selectPackList(orderIds, getUserOrganId());
List<PrintOrderPackReqVO> 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<Long> ids) {
// PlanDO planDO = planMapper.selectById(planId);
// if (Objects.isNull(planDO)) {
// throw exception(PLAN_NOT_EXISTS);
// }
// List<GoodsDO> goodsDOS = goodsMapper.selectBatchIds(goodIds);
List<GoodsReqVO> goodsReqVOS = goodsMapper.selectJoinList(GoodsReqVO.class, new MPJLambdaWrapperX<GoodsDO>()
.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<GoodsReqVO> goodsReqVOS = goodsMapper.selectGoodsAndRemainPlate(ids, getUserOrganId());
List<Long> orderIds = goodsReqVOS.stream().map(GoodsReqVO::getOrderId).distinct().toList();
@@ -662,26 +663,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
List<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
// List<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
//
//
// List<OrderBodyDO> 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<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds, getUserOrganId());
List<PlateDetialRespVO> 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<OrderModelDO> orderModelDOS = buildRespByOrderIds(orderIds, ORDER_PLATE_MODEL, orderModelSize);
// 需要查询的小板造型信息的板材ID
List<Long> plateIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getPlateId).toList();
// // 查询生产单对应的配件信息
// List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
//
// // 查询生产单对应的包裹信息
// List<PrintOrderPackReqVO> printOrderPackReqVOS = orderItemMapper.selectPackList(orderIds, getUserOrganId());
List<OrderModelDO> orderModelDOS = buildRespByPlateIds(plateIds, orderModelSize);
return OrderSource.builder()
.orderList(orderDOS)
@@ -748,25 +743,25 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
// 保存余料板的数据
if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
List<RemainPlateDO> remainPlateDoS = BeanUtils.toBean(req.getOptimizeRemainPlates(), RemainPlateDO.class)
.stream()
.map(m -> m.setUseType(1))
.map(m -> m.setOutLineJson("")).toList();
List<RemainPlateDO> insertPlateDoS = remainPlateDoS.stream().filter(f -> f.getId() == null).toList();
List<RemainPlateDO> updatePlateDoS = remainPlateDoS.stream().filter(f -> f.getId() != null).toList();
Boolean aBoolean = insertPlateDoS.isEmpty() ? null : remainPlateMapper.insertBatch(insertPlateDoS);
Boolean bBoolean = updatePlateDoS.isEmpty() ? null : remainPlateMapper.updateBatch(updatePlateDoS);
}
// // 保存余料板的数据
// if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
//
// List<RemainPlateDO> remainPlateDoS = BeanUtils.toBean(req.getOptimizeRemainPlates(), RemainPlateDO.class)
// .stream()
// .map(m -> m.setUseType(1))
// .map(m -> m.setOutLineJson("")).toList();
//
//
// List<RemainPlateDO> insertPlateDoS = remainPlateDoS.stream().filter(f -> f.getId() == null).toList();
//
// List<RemainPlateDO> updatePlateDoS = remainPlateDoS.stream().filter(f -> f.getId() != null).toList();
//
// Boolean aBoolean = insertPlateDoS.isEmpty() ? null : remainPlateMapper.insertBatch(insertPlateDoS);
//
// Boolean bBoolean = updatePlateDoS.isEmpty() ? null : remainPlateMapper.updateBatch(updatePlateDoS);
//
//
// }
@@ -832,12 +827,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
}
private List<OrderModelDO> buildRespByOrderIds(Collection<Long> orderIds, String index, Integer size) {
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
private List<OrderModelDO> buildRespByPlateIds(Collection<Long> plateIds, Integer size) {
List<FieldValue> 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<OrderModelDO> search = elasticsearchClient.search(builder.build(), OrderModelDO.class);
List<Hit<OrderModelDO>> hits = search.hits().hits();
@@ -65,7 +65,6 @@ public interface PlanService {
Boolean addPlate(AddPlateReq req);
Boolean cancellation(Long id);
PageResult<PlateResList> getPlateByPlanId(GetPlateByPlanIdVO vo);
@@ -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;
@@ -43,11 +42,11 @@ import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
import com.cf.imes.module.executor.dal.mysql.planitem.PlanItemMapper;
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper;
import com.cf.imes.module.executor.enums.OrderStatusEnum;
import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService;
import com.cf.imes.module.system.api.machine.MachineApi;
import com.cf.imes.module.system.api.machine.dto.CuttingRespDTO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -56,7 +55,6 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -105,6 +103,9 @@ public class PlanServiceImpl implements PlanService {
@Resource
private OrderBodyMapper orderBodyMapper;
@Resource
private RemainPlateMapper remainPlateMapper;
@Resource
private IdentifierGenerator identifierGenerator;
@@ -127,6 +128,7 @@ public class PlanServiceImpl implements PlanService {
List<GoodsDO> goodsDOS = new ArrayList<>();
// <大板实际ID,排单ID>
Map<Long,Long> goodsPlanId = new HashMap<>();
Map<Long, List<PlanSaveReqVO.Item>> groupedItems = itemList.stream()
@@ -149,24 +151,12 @@ public class PlanServiceImpl implements PlanService {
goodsPlanId.put(entry.getKey(), plan.getId());
// Set<Long> itemIds = plateMapper.selectBatchOrderIdsAndGoodsIds(items,getUserOrganId());
List<Long> goodsIds = items.stream().map(PlanSaveReqVO.Item::getId).toList();
List<GoodsDO> 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 +169,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<Long> orderIds = itemList.stream().map(PlanSaveReqVO.Item::getOrderId).toList();
//
// List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
//
// List<OrderDO> orderDOList = orderDOS.stream().map(o -> o.setStatus(OrderStatusEnum.SORTED.getStatus())).toList();
//
// orderMapper.updateBatch(orderDOList);
//
// Long planId = plan.getId();
//
//
// // 返回
// return plan.getId();
}
@Override
@@ -224,7 +191,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 +205,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 +219,8 @@ public class PlanServiceImpl implements PlanService {
planMapper.updateById(plan);
//
// // todo 目前只解决非混单的情况,混单的情况待解决,这个逻辑目前应该不用,排单是否开料判断了,可保留,万一以后需求更改
// // todo 目前只解决非混单的情况,混单的情况待解决,这个逻辑目前应该不用(这个逻辑用于判断大板下的小板是否开料,后期应该可用于混单时增加的判断),排单是否开料判断了,可保留,万一以后需求更改
// if(!updateReqVO.getItemList().isEmpty()){
//
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(plan.getId(), ORDER_REMAIN_PLATE_MODEL, 10);
@@ -330,18 +297,23 @@ public class PlanServiceImpl implements PlanService {
}
// 删除排单信息,排单明细表信息,ES优化数据
// 删除排单信息,商品表里的 planId , ES优化数据,更新排单对应的余料板的排单ID为0
planMapper.deleteBatchIds(ids);
planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().in(PlanItemDO::getPlanId, ids));
// planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().in(PlanItemDO::getPlanId, ids));
goodsMapper.deletePlanGoods(ids,getUserOrganId());
remainPlateMapper.deletePlanRemainPlate(ids,getUserOrganId());
// 排单对应的自增板的删除 todo 目前值解决了非混单的情况
List<OptimizeBoardModelDO> boardModelDOS = buildBoardByPlanIds(ids, ORDER_REMAIN_PLATE_MODEL, ids.size());
if(!boardModelDOS.isEmpty()) {
List<Long> goodsIds = boardModelDOS.stream().map(OptimizeBoardModelDO::getGoodsId).toList();
// List<Long> goodsIds = boardModelDOS.stream().map(OptimizeBoardModelDO::getGoodsId).toList();
List<Long> goodsIdList = goodsMapper.selectListByGoodsIdList(goodsIds, orderIds, getUserOrganId()).stream().map(GoodsDO::getId).toList();
// List<Long> goodsIdList = goodsMapper.selectListByGoodsIdList(goodsIds, orderIds, getUserOrganId()).stream().map(GoodsDO::getId).toList();
List<Long> goodsIdList = goodsMapper.selectPlanGoodsListByPlanIdList(ids, getUserOrganId()).stream().map(GoodsDO::getId).toList();
List<PlateDO> plateDOS = plateMapper.selectPlateIdList(goodsIdList, getUserOrganId());
if(!plateDOS.isEmpty()) {
@@ -354,11 +326,6 @@ public class PlanServiceImpl implements PlanService {
}
// 目前生产单的状态已经去除待排单,所以无需修改生产单的状态
// List<OrderDO> 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 +369,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);
}
}
@@ -426,34 +393,41 @@ public class PlanServiceImpl implements PlanService {
@Override
public PlanRespVO getPlan(Long id) {
PlanDO planDO = planMapper.selectById(id);
MPJLambdaWrapper<OrderItemDO> wrapper = new MPJLambdaWrapperX<OrderItemDO>().select(OrderItemDO::getOrderId)
.rightJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
.isNotNull(OrderItemDO::getId);
Set<Long> orderIds = orderItemMapper.selectJoinList(OrderItemDO.class, wrapper).stream().map(OrderItemDO::getOrderId).collect(Collectors.toSet());
/*Set<Long> orderIds = planOrderMapper.selectList(new LambdaQueryWrapperX<PlanOrderDO>().eq(PlanOrderDO::getPlanId, planDO.getPlanNo()))
.stream()
.map(e -> e.getOrderId())
.collect(Collectors.toSet());*/
PlanRespVO respVO = BeanUtils.toBean(planDO, PlanRespVO.class);
List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>()
.eq(GoodsDO::getOrganId,getUserOrganId())
.in(GoodsDO::getOrderId, orderIds));
List<PlateDO> plateDOS = plateMapper.selectList(new LambdaQueryWrapperX<PlateDO>()
.eq(PlateDO::getOrganId,getUserOrganId())
.in(PlateDO::getGoodsId, goodsDOS.stream().map(GoodsDO::getGoodsId).collect(Collectors.toSet())));
List<PlateInfoVO> plateInfoVOS = goodsDOS.stream().map(e -> PlateInfoVO.builder()
.material(e.getMaterial())
.width(e.getWidth())
.height(e.getHeight())
.thickness(e.getThickness())
.area(e.getHeight().multiply(e.getWidth()).setScale(2, RoundingMode.HALF_UP))
.count(plateDOS.stream().filter(f -> Objects.equals(f.getGoodsId(), e.getGoodsId())).collect(Collectors.toSet()).size())
.build())
.collect(Collectors.toList());
respVO.setPlateInfoList(plateInfoVOS);
return respVO;
PlanDO planDO = planMapper.selectById(id);
if ( planDO== null) {
throw exception(PLAN_NOT_EXISTS);
}
return BeanUtils.toBean(planDO, PlanRespVO.class);
// MPJLambdaWrapper<OrderItemDO> wrapper = new MPJLambdaWrapperX<OrderItemDO>().select(OrderItemDO::getOrderId)
// .rightJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
// .isNotNull(OrderItemDO::getId);
// Set<Long> orderIds = orderItemMapper.selectJoinList(OrderItemDO.class, wrapper).stream().map(OrderItemDO::getOrderId).collect(Collectors.toSet());
//
// /*Set<Long> orderIds = planOrderMapper.selectList(new LambdaQueryWrapperX<PlanOrderDO>().eq(PlanOrderDO::getPlanId, planDO.getPlanNo()))
// .stream()
// .map(e -> e.getOrderId())
// .collect(Collectors.toSet());*/
// List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>()
// .eq(GoodsDO::getOrganId,getUserOrganId())
// .in(GoodsDO::getOrderId, orderIds));
// List<PlateDO> plateDOS = plateMapper.selectList(new LambdaQueryWrapperX<PlateDO>()
// .eq(PlateDO::getOrganId,getUserOrganId())
// .in(PlateDO::getGoodsId, goodsDOS.stream().map(GoodsDO::getGoodsId).collect(Collectors.toSet())));
// List<PlateInfoVO> plateInfoVOS = goodsDOS.stream().map(e -> PlateInfoVO.builder()
// .material(e.getMaterial())
// .width(e.getWidth())
// .height(e.getHeight())
// .thickness(e.getThickness())
// .area(e.getHeight().multiply(e.getWidth()).setScale(2, RoundingMode.HALF_UP))
// .count(plateDOS.stream().filter(f -> Objects.equals(f.getGoodsId(), e.getGoodsId())).collect(Collectors.toSet()).size())
// .build())
// .collect(Collectors.toList());
// respVO.setPlateInfoList(plateInfoVOS);
}
@@ -542,8 +516,8 @@ public class PlanServiceImpl implements PlanService {
// 根据排单ID查询ES中的优化数据 todo 目前只解决无混单的情况,混单情况待解决
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, infoVOList.size());
for (OptimizeBoardModelDO optimizeBoardModelDO : optimizeBoardModelDOS) {
}
// for (OptimizeBoardModelDO optimizeBoardModelDO : optimizeBoardModelDOS) {
// }
// 获取排单对应的生产单的信息
List<PlanOrderRespVO> planOrderRespVOS = planItemMapper.selectOrderList(planIds, getUserOrganId());
@@ -972,24 +946,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<Long> itemIds = planItemMapper.selectList(new LambdaQueryWrapperX<PlanItemDO>()
.eq(PlanItemDO::getOrganId,getUserOrganId())
.eq(PlanItemDO::getPlanId, id))
.stream().map(PlanItemDO::getItemId)
.collect(Collectors.toSet());
plateMapper.update(new LambdaUpdateWrapper<PlateDO>().in(PlateDO::getId, itemIds).set(PlateDO::getIsCancel, Boolean.TRUE));
return Boolean.TRUE;
}
@Override
public PageResult<PlateResList> getPlateByPlanId(GetPlateByPlanIdVO vo) {
@@ -1046,6 +1002,7 @@ public class PlanServiceImpl implements PlanService {
MPJLambdaWrapperX<OrderDO> lambdaWrapperX = new MPJLambdaWrapperX<>();
lambdaWrapperX.leftJoin(GoodsDO.class, GoodsDO::getOrderId, OrderDO::getId)
.eq(GoodsDO::getOrganId,getUserOrganId())
.eq(GoodsDO::getDeleted,false)
.eq(GoodsDO::getPlanId, pageReqVO.getPlanId())
.distinct();
@@ -1090,7 +1047,7 @@ public class PlanServiceImpl implements PlanService {
public List<PlateResList> getPlateList(List<Long> planIds) {
List<PlateResList> plateResLists = plateMapper.selectPlateListByPlanId(planIds, getUserOrganId());
List<PlateResList> plateResLists = goodsMapper.selectPlateListByPlanId(planIds, getUserOrganId());
Set<Long> bodyIds = plateResLists.stream().map(PlateResList::getBodyId).collect(Collectors.toSet());
if (CollectionUtil.isNotEmpty(bodyIds)) {
@@ -1110,10 +1067,7 @@ public class PlanServiceImpl implements PlanService {
public List<OrderRoomBodyList> getOrderRoomBody(List<Long> orderIds) {
List<OrderRoomBodyList> orderRoomBodyLists = orderItemMapper.selectRoomBodyByOrderId(orderIds, getUserOrganId());
return orderRoomBodyLists;
return goodsMapper.selectNoPlanRoomBody(orderIds,getUserOrganId());
}
@@ -231,7 +231,7 @@
from order_goods og
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
where og.organ_id = #{organId}
@@ -288,8 +288,8 @@
oi.body_id
from order_goods og
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
left join order_item oi on op.organ_id = oi.organ_id and op.id = oi.plate_id
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
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
${ew.customSqlSegment}
@@ -297,4 +297,131 @@
</select>
<select id="selectGoodsAndRemainPlate"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO">
select
og.*,
orp.id as remainId
from order_goods og
left join order_remain_plate orp on og.organ_id = orp.organ_id and og.id = orp.goods_id
where og.organ_id = #{organId}
and og.deleted = false
and og.id in
<foreach collection="ids" item="ids" open="(" close=")" separator=",">
#{ids}
</foreach>
</select>
<select id="selectNoPlanOrderList"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
select distinct og.order_id as orderId,og.create_time as updateTime
from order_goods og
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
${ew.customSqlSegment}
</select>
<select id="selectPlateListByPlanId"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList" parameterType="java.lang.Long">
select distinct op.id as plateId,
op.order_id,
op.plate_no ,
op.name as plateName,
op.is_special_shaped,
op.is_sculpt,
op.area,
op.seal_left,
op.seal_right,
op.seal_up,
op.seal_down,
og.material,
og.color,
op.width,
op.height,
op.thickness,
oi.room_id,
oi.body_id
from order_goods og
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
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
where og.organ_id = #{organId}
and og.plan_id in
<foreach collection="planIds" item="planIds" open="(" close=")" separator=",">
#{planIds}
</foreach>
</select>
<resultMap id="RoomBodyListMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList">
<result property="orderId" column="orderId"/>
<collection property="orderRoomIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomIds" resultMap="OrderRoomIdsMap"/>
</resultMap>
<resultMap id="OrderRoomIdsMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomIds">
<result property="roomId" column="roomId"/>
<result property="roomName" column="roomName"/>
<collection property="orderBodyIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderBodyIds" resultMap="OrderBodyIdsMap"/>
</resultMap>
<resultMap id="OrderBodyIdsMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderBodyIds">
<result property="bodyId" column="bodyId"/>
<result property="bodyName" column="bodyName"/>
</resultMap>
<select id="selectNoPlanRoomBody"
resultMap="RoomBodyListMap"
parameterType="java.lang.Long">
select distinct
og.order_id as orderId,
ob.id as bodyId,
ob.name as bodyName,
ob.room_id as roomId,
ob.room_name as roomName
from order_goods og
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_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_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id
where og.organ_id = #{organId}
and og.deleted = false
and og.plan_id = 0
and og.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
</select>
</mapper>
@@ -173,106 +173,42 @@
<resultMap id="PackListMap" type="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO">
<result property="orderId" column="orderId"/>
<result property="plateId" column="plateId"/>
<result property="packId" column="packId"/>
<result property="packNo" column="packNo"/>
<result property="packNum" column="packNum"/>
<collection property="plateId" ofType="java.lang.Long" column="plateId"/>
</resultMap>
<select id="selectPackList"
parameterType="java.lang.Long"
resultMap="PackListMap">
select distinct oi.order_id as orderId,
oi.plate_id as plateId,
op.id as packId,
op.package_no as packNo,
(case when op.status !=0 then count(op.id) end) as packNum
from order_item oi
left join order_package op on oi.order_id = op.order_id and oi.organ_id = op.organ_id
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 oi.parts_id = 0 and oi.organ_id = #{organId}
and oi.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
where op.organ_id = #{organId}
and op.deleted = false
and op.goods_id in
<foreach item="ids" collection="ids" open="(" separator="," close=")">
#{ids}
</foreach>
group by oi.order_id,oi.plate_id,op.id,op.package_no,op.status;
and oi.parts_id = 0
and oi.package_id !=0
</select>
<resultMap id="RoomBodyListMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList">
<result property="orderId" column="orderId"/>
<collection property="orderRoomIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomIds" resultMap="OrderRoomIdsMap"/>
</resultMap>
<resultMap id="OrderRoomIdsMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomIds">
<result property="roomId" column="roomId"/>
<result property="roomName" column="roomName"/>
<collection property="orderBodyIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderBodyIds" resultMap="OrderBodyIdsMap"/>
</resultMap>
<resultMap id="OrderBodyIdsMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderBodyIds">
<result property="bodyId" column="bodyId"/>
<result property="bodyName" column="bodyName"/>
</resultMap>
<select id="selectRoomBodyByOrderId"
resultMap="RoomBodyListMap"
parameterType="java.lang.Long">
select distinct
oi.order_id as orderId,
ob.id as bodyId,
ob.name as bodyName,
ob.room_id as roomId,
ob.room_name as roomName
from order_item oi
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
left join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
where oi.organ_id = #{organId} and opi.item_id is null and oi.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
</select>
<resultMap id="TestMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
<result property="orderId" column="orderId"/>
<!-- <collection property="platePages" ofType="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage" resultMap="Test2Map"/>-->
</resultMap>
<resultMap id="Test2Map" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage">
<result property="plateId" column="plateId"/>
</resultMap>
<select id="selectTestNum"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
@@ -288,5 +224,25 @@
</select>
<select id="selectOrderPlateList" parameterType="java.lang.Long" resultMap="PackListMap">
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
</select>
</mapper>
@@ -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
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
@@ -161,9 +161,8 @@
,CONCAT(YEAR(p.create_time), '-', MONTH(p.create_time), '-', DAY(p.create_time)) as date
</if>
from order_plan p
join order_plan_item opi on p.id = opi.plan_id
join order_item oi on oi.id = opi.item_id
join order_plate op on oi.plate_id = op.id
join order_goods g on g.plan_id = p.id
join order_plate op on op.goods_id = g.id
where p.create_time between #{req.createTime[0]} and #{req.createTime[1]}
and p.deleted = 0
group by date;
@@ -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}
</select>
@@ -431,27 +432,6 @@
</select>
<select id="selectPlateListByPlanId" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList"
parameterType="java.lang.Long">
select distinct a.id as plateId,a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt,a.area,a.seal_left,a.seal_right,a.seal_up,a.seal_down, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id
from order_plate a
LEFT JOIN order_item b ON a.id = b.plate_id AND a.order_id = b.order_id and a.organ_id = b.organ_id
LEFT JOIN order_goods e ON e.id = a.goods_id AND e.order_id = a.order_id and e.organ_id = a.organ_id
LEFT JOIN order_plan_item p ON b.id = p.item_id and b.organ_id = p.organ_id
where p.organ_id = #{organId}
and p.plan_id in
<foreach collection="planIds" item="planIds" open="(" close=")" separator=",">
#{planIds}
</foreach>
order by a.order_id,plateName;
</select>
<select id="selectPlateIdListByBodyId" resultType="java.lang.Long">
SELECT plate_id FROM order_item
@@ -822,6 +802,10 @@
oi.group_id as groupId,
oi.room_id as roomId,
og.name as groupName,
ob.name as bodyName,
ob.room_name as roomName,
ogs.goods_id as plateGoodsId,
ogs.goods_name as goodsName,
op.id as plateId,
op.order_id as orderId,
@@ -864,8 +848,10 @@
op.is_row_hole as hasHole
from order_plate op
left join order_item oi on op.organ_id = oi.organ_id and op.id = oi.plate_id
left join order_group og on oi.organ_id = og.organ_id and oi.group_id = og.id
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.goods_id in